package org.develnext.jphp.android.ext.classes.app;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import org.develnext.jphp.android.AndroidStandaloneLoader;
import org.develnext.jphp.android.ext.AndroidExtension;
import php.runtime.Memory;
import php.runtime.annotation.Reflection.Name;
import php.runtime.annotation.Reflection.Signature;
import php.runtime.annotation.Reflection.UseJavaLikeNames;
import php.runtime.env.Environment;
import php.runtime.exceptions.CriticalException;
import php.runtime.lang.IObject;
import php.runtime.memory.ArrayMemory;
import php.runtime.reflection.ClassEntity;
@UseJavaLikeNames
@Name(AndroidExtension.NAMESPACE + "app\\Activity")
public class WrapActivity extends Activity implements IObject {
private boolean isFinalized = false;
private ClassEntity __class__;
private ArrayMemory __props__ = new ArrayMemory();
public WrapActivity() {
super();
}
public WrapActivity(Environment env, ClassEntity clazz) {
throw new RuntimeException("Unable to create object");
}
@Signature
public Memory __construct(Environment env, Memory... args) {
return Memory.NULL;
}
@Signature
public void setContentView(View view) {
super.setContentView(view);
}
@Signature
public void setTitle(String title) {
super.setTitle(title);
}
@Signature
public void onCreate() {
// nop.
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getEnvironment().invokeMethodNoThrow(this, "onCreate");
}
final protected void onCreateClearly(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public ClassEntity getReflection() {
if (__class__ != null) {
return __class__;
}
Environment env = getEnvironment();
if (env != null) {
try {
__class__ = env.fetchClass(getClass().getField("$CL").get(null).toString());
} catch (IllegalAccessException e) {
throw new CriticalException(e);
} catch (NoSuchFieldException e) {
throw new CriticalException(e);
}
}
return __class__;
}
@Override
public ArrayMemory getProperties() {
return __props__;
}
@Override
public Environment getEnvironment() {
return AndroidStandaloneLoader.getEnvironment();
}
@Override
public int getPointer() {
return hashCode();
}
@Override
public boolean isMock() {
return __class__ == null;
}
@Override
public void setAsMock() {
__class__ = null;
}
@Override
public boolean isFinalized() {
return isFinalized;
}
@Override
public void doFinalize() {
isFinalized = true;
}
}