You've already forked android_translation_layer
mirror of
https://gitlab.com/android_translation_layer/android_translation_layer.git
synced 2025-10-27 11:48:10 -07:00
Activity: make startActivityForResult() functional
This commit is contained in:
@@ -31,6 +31,11 @@ public class Activity extends Context {
|
|||||||
Window window = new Window();
|
Window window = new Window();
|
||||||
int requested_orientation = -1 /*ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED*/; // dummy
|
int requested_orientation = -1 /*ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED*/; // dummy
|
||||||
private Intent intent;
|
private Intent intent;
|
||||||
|
private Activity resultActivity;
|
||||||
|
private int resultRequestCode;
|
||||||
|
private int pendingRequestCode;
|
||||||
|
private int pendingResultCode;
|
||||||
|
private Intent pendingData;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper function to be called from native code to construct main activity
|
* Helper function to be called from native code to construct main activity
|
||||||
@@ -124,6 +129,10 @@ public class Activity extends Context {
|
|||||||
|
|
||||||
protected void onResume() {
|
protected void onResume() {
|
||||||
System.out.println("- onResume - yay!");
|
System.out.println("- onResume - yay!");
|
||||||
|
if (pendingData != null) {
|
||||||
|
onActivityResult(pendingRequestCode, pendingResultCode, pendingData);
|
||||||
|
pendingData = null;
|
||||||
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -235,6 +244,8 @@ public class Activity extends Context {
|
|||||||
Activity activity = constructor.newInstance();
|
Activity activity = constructor.newInstance();
|
||||||
activity.intent = intent;
|
activity.intent = intent;
|
||||||
activity.getWindow().native_window = getWindow().native_window;
|
activity.getWindow().native_window = getWindow().native_window;
|
||||||
|
activity.resultRequestCode = requestCode;
|
||||||
|
activity.resultActivity = this;
|
||||||
nativeStartActivity(activity);
|
nativeStartActivity(activity);
|
||||||
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
} catch (ClassNotFoundException | NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
|
||||||
onActivityResult(requestCode, 0 /*RESULT_CANCELED*/, new Intent()); // RESULT_CANCELED is the only pre-defined return value, so hopefully it works out for us
|
onActivityResult(requestCode, 0 /*RESULT_CANCELED*/, new Intent()); // RESULT_CANCELED is the only pre-defined return value, so hopefully it works out for us
|
||||||
@@ -245,6 +256,14 @@ public class Activity extends Context {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setResult(int resultCode, Intent data) {
|
||||||
|
if (resultActivity != null) {
|
||||||
|
resultActivity.pendingRequestCode = resultRequestCode;
|
||||||
|
resultActivity.pendingResultCode = resultCode;
|
||||||
|
resultActivity.pendingData = data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void startActivity(Intent intent) {
|
public void startActivity(Intent intent) {
|
||||||
System.out.println("startActivity(" + intent + ") called");
|
System.out.println("startActivity(" + intent + ") called");
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ import java.util.Map;
|
|||||||
|
|
||||||
public class Intent {
|
public class Intent {
|
||||||
private ComponentName component;
|
private ComponentName component;
|
||||||
private Map<String, Object> extras = new HashMap<>();
|
private Bundle extras = new Bundle();
|
||||||
|
|
||||||
public Intent() {}
|
public Intent() {}
|
||||||
public Intent(Intent o) {}
|
public Intent(Intent o) {}
|
||||||
@@ -32,122 +32,122 @@ public class Intent {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, Parcelable value) {
|
public Intent putExtra(String name, Parcelable value) {
|
||||||
extras.put(name, value);
|
extras.putParcelable(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, long[] value) {
|
public Intent putExtra(String name, long[] value) {
|
||||||
extras.put(name, value);
|
extras.putLongArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, byte value) {
|
public Intent putExtra(String name, byte value) {
|
||||||
extras.put(name, value);
|
extras.putByte(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, double[] value) {
|
public Intent putExtra(String name, double[] value) {
|
||||||
extras.put(name, value);
|
extras.putDoubleArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, CharSequence value) {
|
public Intent putExtra(String name, CharSequence value) {
|
||||||
extras.put(name, value);
|
extras.putCharSequence(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, boolean[] value) {
|
public Intent putExtra(String name, boolean[] value) {
|
||||||
extras.put(name, value);
|
extras.putBooleanArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, int value) {
|
public Intent putExtra(String name, int value) {
|
||||||
extras.put(name, value);
|
extras.putInt(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, char[] value) {
|
public Intent putExtra(String name, char[] value) {
|
||||||
extras.put(name, value);
|
extras.putCharArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, byte[] value) {
|
public Intent putExtra(String name, byte[] value) {
|
||||||
extras.put(name, value);
|
extras.putByteArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, Parcelable[] value) {
|
public Intent putExtra(String name, Parcelable[] value) {
|
||||||
extras.put(name, value);
|
extras.putParcelableArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, Bundle value) {
|
public Intent putExtra(String name, Bundle value) {
|
||||||
extras.put(name, value);
|
extras.putBundle(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, CharSequence[] value) {
|
public Intent putExtra(String name, CharSequence[] value) {
|
||||||
extras.put(name, value);
|
extras.putCharSequenceArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, float[] value) {
|
public Intent putExtra(String name, float[] value) {
|
||||||
extras.put(name, value);
|
extras.putFloatArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, double value) {
|
public Intent putExtra(String name, double value) {
|
||||||
extras.put(name, value);
|
extras.putDouble(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, int[] value) {
|
public Intent putExtra(String name, int[] value) {
|
||||||
extras.put(name, value);
|
extras.putIntArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, String[] value) {
|
public Intent putExtra(String name, String[] value) {
|
||||||
extras.put(name, value);
|
extras.putStringArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, short[] value) {
|
public Intent putExtra(String name, short[] value) {
|
||||||
extras.put(name, value);
|
extras.putShortArray(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, boolean value) {
|
public Intent putExtra(String name, boolean value) {
|
||||||
extras.put(name, value);
|
extras.putBoolean(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, String value) {
|
public Intent putExtra(String name, String value) {
|
||||||
extras.put(name, value);
|
extras.putString(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, long value) {
|
public Intent putExtra(String name, long value) {
|
||||||
extras.put(name, value);
|
extras.putLong(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, char value) {
|
public Intent putExtra(String name, char value) {
|
||||||
extras.put(name, value);
|
extras.putChar(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, Serializable value) {
|
public Intent putExtra(String name, Serializable value) {
|
||||||
extras.put(name, value);
|
extras.putSerializable(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, float value) {
|
public Intent putExtra(String name, float value) {
|
||||||
extras.put(name, value);
|
extras.putFloat(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Intent putExtra(String name, short value) {
|
public Intent putExtra(String name, short value) {
|
||||||
extras.put(name, value);
|
extras.putShort(name, value);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -193,6 +193,10 @@ public class Intent {
|
|||||||
return (Serializable)extras.get(name);
|
return (Serializable)extras.get(name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Bundle getExtras() {
|
||||||
|
return extras;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString() {
|
public String toString() {
|
||||||
return "Intent [component=" + component + ", extras=" + extras + "]";
|
return "Intent [component=" + component + ", extras=" + extras + "]";
|
||||||
|
|||||||
Reference in New Issue
Block a user