mirror of
https://github.com/KeymonSoft/Mazapa-Reparto.git
synced 2026-04-23 07:40:10 +00:00
459 lines
17 KiB
Java
459 lines
17 KiB
Java
package reparto_mazapa.keymon.lat;
|
|
|
|
|
|
import anywheresoftware.b4a.B4AMenuItem;
|
|
import android.app.Activity;
|
|
import android.os.Bundle;
|
|
import anywheresoftware.b4a.BA;
|
|
import anywheresoftware.b4a.BALayout;
|
|
import anywheresoftware.b4a.B4AActivity;
|
|
import anywheresoftware.b4a.ObjectWrapper;
|
|
import anywheresoftware.b4a.objects.ActivityWrapper;
|
|
import java.lang.reflect.InvocationTargetException;
|
|
import anywheresoftware.b4a.B4AUncaughtException;
|
|
import anywheresoftware.b4a.debug.*;
|
|
import java.lang.ref.WeakReference;
|
|
|
|
public class main extends Activity implements B4AActivity{
|
|
public static main mostCurrent;
|
|
static boolean afterFirstLayout;
|
|
static boolean isFirst = true;
|
|
private static boolean processGlobalsRun = false;
|
|
BALayout layout;
|
|
public static BA processBA;
|
|
BA activityBA;
|
|
ActivityWrapper _activity;
|
|
java.util.ArrayList<B4AMenuItem> menuItems;
|
|
public static final boolean fullScreen = false;
|
|
public static final boolean includeTitle = true;
|
|
public static WeakReference<Activity> previousOne;
|
|
public static boolean dontPause;
|
|
|
|
@Override
|
|
public void onCreate(Bundle savedInstanceState) {
|
|
super.onCreate(savedInstanceState);
|
|
mostCurrent = this;
|
|
if (processBA == null) {
|
|
processBA = new BA(this.getApplicationContext(), null, null, "reparto_mazapa.keymon.lat", "reparto_mazapa.keymon.lat.main");
|
|
processBA.loadHtSubs(this.getClass());
|
|
float deviceScale = getApplicationContext().getResources().getDisplayMetrics().density;
|
|
BALayout.setDeviceScale(deviceScale);
|
|
|
|
}
|
|
else if (previousOne != null) {
|
|
Activity p = previousOne.get();
|
|
if (p != null && p != this) {
|
|
BA.LogInfo("Killing previous instance (main).");
|
|
p.finish();
|
|
}
|
|
}
|
|
processBA.setActivityPaused(true);
|
|
processBA.runHook("oncreate", this, null);
|
|
if (!includeTitle) {
|
|
this.getWindow().requestFeature(android.view.Window.FEATURE_NO_TITLE);
|
|
}
|
|
if (fullScreen) {
|
|
getWindow().setFlags(android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN,
|
|
android.view.WindowManager.LayoutParams.FLAG_FULLSCREEN);
|
|
}
|
|
|
|
processBA.sharedProcessBA.activityBA = null;
|
|
layout = new BALayout(this);
|
|
setContentView(layout);
|
|
afterFirstLayout = false;
|
|
WaitForLayout wl = new WaitForLayout();
|
|
if (anywheresoftware.b4a.objects.ServiceHelper.StarterHelper.startFromActivity(this, processBA, wl, false))
|
|
BA.handler.postDelayed(wl, 5);
|
|
|
|
}
|
|
static class WaitForLayout implements Runnable {
|
|
public void run() {
|
|
if (afterFirstLayout)
|
|
return;
|
|
if (mostCurrent == null)
|
|
return;
|
|
|
|
if (mostCurrent.layout.getWidth() == 0) {
|
|
BA.handler.postDelayed(this, 5);
|
|
return;
|
|
}
|
|
mostCurrent.layout.getLayoutParams().height = mostCurrent.layout.getHeight();
|
|
mostCurrent.layout.getLayoutParams().width = mostCurrent.layout.getWidth();
|
|
afterFirstLayout = true;
|
|
mostCurrent.afterFirstLayout();
|
|
}
|
|
}
|
|
private void afterFirstLayout() {
|
|
if (this != mostCurrent)
|
|
return;
|
|
activityBA = new BA(this, layout, processBA, "reparto_mazapa.keymon.lat", "reparto_mazapa.keymon.lat.main");
|
|
|
|
processBA.sharedProcessBA.activityBA = new java.lang.ref.WeakReference<BA>(activityBA);
|
|
anywheresoftware.b4a.objects.ViewWrapper.lastId = 0;
|
|
_activity = new ActivityWrapper(activityBA, "activity");
|
|
anywheresoftware.b4a.Msgbox.isDismissing = false;
|
|
if (BA.isShellModeRuntimeCheck(processBA)) {
|
|
if (isFirst)
|
|
processBA.raiseEvent2(null, true, "SHELL", false);
|
|
processBA.raiseEvent2(null, true, "CREATE", true, "reparto_mazapa.keymon.lat.main", processBA, activityBA, _activity, anywheresoftware.b4a.keywords.Common.Density, mostCurrent);
|
|
_activity.reinitializeForShell(activityBA, "activity");
|
|
}
|
|
initializeProcessGlobals();
|
|
initializeGlobals();
|
|
|
|
BA.LogInfo("** Activity (main) Create " + (isFirst ? "(first time)" : "") + " **");
|
|
processBA.raiseEvent2(null, true, "activity_create", false, isFirst);
|
|
isFirst = false;
|
|
if (this != mostCurrent)
|
|
return;
|
|
processBA.setActivityPaused(false);
|
|
BA.LogInfo("** Activity (main) Resume **");
|
|
processBA.raiseEvent(null, "activity_resume");
|
|
if (android.os.Build.VERSION.SDK_INT >= 11) {
|
|
try {
|
|
android.app.Activity.class.getMethod("invalidateOptionsMenu").invoke(this,(Object[]) null);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
}
|
|
public void addMenuItem(B4AMenuItem item) {
|
|
if (menuItems == null)
|
|
menuItems = new java.util.ArrayList<B4AMenuItem>();
|
|
menuItems.add(item);
|
|
}
|
|
@Override
|
|
public boolean onCreateOptionsMenu(android.view.Menu menu) {
|
|
super.onCreateOptionsMenu(menu);
|
|
try {
|
|
if (processBA.subExists("activity_actionbarhomeclick")) {
|
|
Class.forName("android.app.ActionBar").getMethod("setHomeButtonEnabled", boolean.class).invoke(
|
|
getClass().getMethod("getActionBar").invoke(this), true);
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
if (processBA.runHook("oncreateoptionsmenu", this, new Object[] {menu}))
|
|
return true;
|
|
if (menuItems == null)
|
|
return false;
|
|
for (B4AMenuItem bmi : menuItems) {
|
|
android.view.MenuItem mi = menu.add(bmi.title);
|
|
if (bmi.drawable != null)
|
|
mi.setIcon(bmi.drawable);
|
|
if (android.os.Build.VERSION.SDK_INT >= 11) {
|
|
try {
|
|
if (bmi.addToBar) {
|
|
android.view.MenuItem.class.getMethod("setShowAsAction", int.class).invoke(mi, 1);
|
|
}
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
mi.setOnMenuItemClickListener(new B4AMenuItemsClickListener(bmi.eventName.toLowerCase(BA.cul)));
|
|
}
|
|
|
|
return true;
|
|
}
|
|
@Override
|
|
public boolean onOptionsItemSelected(android.view.MenuItem item) {
|
|
if (item.getItemId() == 16908332) {
|
|
processBA.raiseEvent(null, "activity_actionbarhomeclick");
|
|
return true;
|
|
}
|
|
else
|
|
return super.onOptionsItemSelected(item);
|
|
}
|
|
@Override
|
|
public boolean onPrepareOptionsMenu(android.view.Menu menu) {
|
|
super.onPrepareOptionsMenu(menu);
|
|
processBA.runHook("onprepareoptionsmenu", this, new Object[] {menu});
|
|
return true;
|
|
|
|
}
|
|
protected void onStart() {
|
|
super.onStart();
|
|
processBA.runHook("onstart", this, null);
|
|
}
|
|
protected void onStop() {
|
|
super.onStop();
|
|
processBA.runHook("onstop", this, null);
|
|
}
|
|
public void onWindowFocusChanged(boolean hasFocus) {
|
|
super.onWindowFocusChanged(hasFocus);
|
|
if (processBA.subExists("activity_windowfocuschanged"))
|
|
processBA.raiseEvent2(null, true, "activity_windowfocuschanged", false, hasFocus);
|
|
}
|
|
private class B4AMenuItemsClickListener implements android.view.MenuItem.OnMenuItemClickListener {
|
|
private final String eventName;
|
|
public B4AMenuItemsClickListener(String eventName) {
|
|
this.eventName = eventName;
|
|
}
|
|
public boolean onMenuItemClick(android.view.MenuItem item) {
|
|
processBA.raiseEventFromUI(item.getTitle(), eventName + "_click");
|
|
return true;
|
|
}
|
|
}
|
|
public static Class<?> getObject() {
|
|
return main.class;
|
|
}
|
|
private Boolean onKeySubExist = null;
|
|
private Boolean onKeyUpSubExist = null;
|
|
@Override
|
|
public boolean onKeyDown(int keyCode, android.view.KeyEvent event) {
|
|
if (processBA.runHook("onkeydown", this, new Object[] {keyCode, event}))
|
|
return true;
|
|
if (onKeySubExist == null)
|
|
onKeySubExist = processBA.subExists("activity_keypress");
|
|
if (onKeySubExist) {
|
|
if (keyCode == anywheresoftware.b4a.keywords.constants.KeyCodes.KEYCODE_BACK &&
|
|
android.os.Build.VERSION.SDK_INT >= 18) {
|
|
HandleKeyDelayed hk = new HandleKeyDelayed();
|
|
hk.kc = keyCode;
|
|
BA.handler.post(hk);
|
|
return true;
|
|
}
|
|
else {
|
|
boolean res = new HandleKeyDelayed().runDirectly(keyCode);
|
|
if (res)
|
|
return true;
|
|
}
|
|
}
|
|
return super.onKeyDown(keyCode, event);
|
|
}
|
|
private class HandleKeyDelayed implements Runnable {
|
|
int kc;
|
|
public void run() {
|
|
runDirectly(kc);
|
|
}
|
|
public boolean runDirectly(int keyCode) {
|
|
Boolean res = (Boolean)processBA.raiseEvent2(_activity, false, "activity_keypress", false, keyCode);
|
|
if (res == null || res == true) {
|
|
return true;
|
|
}
|
|
else if (keyCode == anywheresoftware.b4a.keywords.constants.KeyCodes.KEYCODE_BACK) {
|
|
finish();
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
}
|
|
@Override
|
|
public boolean onKeyUp(int keyCode, android.view.KeyEvent event) {
|
|
if (processBA.runHook("onkeyup", this, new Object[] {keyCode, event}))
|
|
return true;
|
|
if (onKeyUpSubExist == null)
|
|
onKeyUpSubExist = processBA.subExists("activity_keyup");
|
|
if (onKeyUpSubExist) {
|
|
Boolean res = (Boolean)processBA.raiseEvent2(_activity, false, "activity_keyup", false, keyCode);
|
|
if (res == null || res == true)
|
|
return true;
|
|
}
|
|
return super.onKeyUp(keyCode, event);
|
|
}
|
|
@Override
|
|
public void onNewIntent(android.content.Intent intent) {
|
|
super.onNewIntent(intent);
|
|
this.setIntent(intent);
|
|
processBA.runHook("onnewintent", this, new Object[] {intent});
|
|
}
|
|
@Override
|
|
public void onPause() {
|
|
super.onPause();
|
|
if (_activity == null)
|
|
return;
|
|
if (this != mostCurrent)
|
|
return;
|
|
anywheresoftware.b4a.Msgbox.dismiss(true);
|
|
if (!dontPause)
|
|
BA.LogInfo("** Activity (main) Pause, UserClosed = " + activityBA.activity.isFinishing() + " **");
|
|
else
|
|
BA.LogInfo("** Activity (main) Pause event (activity is not paused). **");
|
|
if (mostCurrent != null)
|
|
processBA.raiseEvent2(_activity, true, "activity_pause", false, activityBA.activity.isFinishing());
|
|
if (!dontPause) {
|
|
processBA.setActivityPaused(true);
|
|
mostCurrent = null;
|
|
}
|
|
|
|
if (!activityBA.activity.isFinishing())
|
|
previousOne = new WeakReference<Activity>(this);
|
|
anywheresoftware.b4a.Msgbox.isDismissing = false;
|
|
processBA.runHook("onpause", this, null);
|
|
}
|
|
|
|
@Override
|
|
public void onDestroy() {
|
|
super.onDestroy();
|
|
previousOne = null;
|
|
processBA.runHook("ondestroy", this, null);
|
|
}
|
|
@Override
|
|
public void onResume() {
|
|
super.onResume();
|
|
mostCurrent = this;
|
|
anywheresoftware.b4a.Msgbox.isDismissing = false;
|
|
if (activityBA != null) { //will be null during activity create (which waits for AfterLayout).
|
|
ResumeMessage rm = new ResumeMessage(mostCurrent);
|
|
BA.handler.post(rm);
|
|
}
|
|
processBA.runHook("onresume", this, null);
|
|
}
|
|
private static class ResumeMessage implements Runnable {
|
|
private final WeakReference<Activity> activity;
|
|
public ResumeMessage(Activity activity) {
|
|
this.activity = new WeakReference<Activity>(activity);
|
|
}
|
|
public void run() {
|
|
main mc = mostCurrent;
|
|
if (mc == null || mc != activity.get())
|
|
return;
|
|
processBA.setActivityPaused(false);
|
|
BA.LogInfo("** Activity (main) Resume **");
|
|
if (mc != mostCurrent)
|
|
return;
|
|
processBA.raiseEvent(mc._activity, "activity_resume", (Object[])null);
|
|
}
|
|
}
|
|
@Override
|
|
protected void onActivityResult(int requestCode, int resultCode,
|
|
android.content.Intent data) {
|
|
processBA.onActivityResult(requestCode, resultCode, data);
|
|
processBA.runHook("onactivityresult", this, new Object[] {requestCode, resultCode});
|
|
}
|
|
private static void initializeGlobals() {
|
|
processBA.raiseEvent2(null, true, "globals", false, (Object[])null);
|
|
}
|
|
public void onRequestPermissionsResult(int requestCode,
|
|
String permissions[], int[] grantResults) {
|
|
for (int i = 0;i < permissions.length;i++) {
|
|
Object[] o = new Object[] {permissions[i], grantResults[i] == 0};
|
|
processBA.raiseEventFromDifferentThread(null,null, 0, "activity_permissionresult", true, o);
|
|
}
|
|
|
|
}
|
|
|
|
public anywheresoftware.b4a.keywords.Common __c = null;
|
|
public static boolean _actionbarhomeclicked = false;
|
|
public b4a.example.dateutils _dateutils = null;
|
|
public reparto_mazapa.keymon.lat.appupdater _appupdater = null;
|
|
public reparto_mazapa.keymon.lat.foto _foto = null;
|
|
public reparto_mazapa.keymon.lat.mapa_cliente _mapa_cliente = null;
|
|
public reparto_mazapa.keymon.lat.mapa_rutas _mapa_rutas = null;
|
|
public reparto_mazapa.keymon.lat.starter _starter = null;
|
|
public reparto_mazapa.keymon.lat.subs _subs = null;
|
|
public reparto_mazapa.keymon.lat.tracker _tracker = null;
|
|
public reparto_mazapa.keymon.lat.newinst2 _newinst2 = null;
|
|
public reparto_mazapa.keymon.lat.b4xpages _b4xpages = null;
|
|
public reparto_mazapa.keymon.lat.b4xcollections _b4xcollections = null;
|
|
public reparto_mazapa.keymon.lat.httputils2service _httputils2service = null;
|
|
public reparto_mazapa.keymon.lat.xuiviewsutils _xuiviewsutils = null;
|
|
|
|
public static boolean isAnyActivityVisible() {
|
|
boolean vis = false;
|
|
vis = vis | (main.mostCurrent != null);
|
|
vis = vis | (foto.mostCurrent != null);
|
|
vis = vis | (mapa_cliente.mostCurrent != null);
|
|
vis = vis | (mapa_rutas.mostCurrent != null);
|
|
return vis;}
|
|
public static String _activity_actionbarhomeclick() throws Exception{
|
|
//BA.debugLineNum = 34;BA.debugLine="Sub Activity_ActionBarHomeClick";
|
|
//BA.debugLineNum = 35;BA.debugLine="ActionBarHomeClicked = True";
|
|
_actionbarhomeclicked = anywheresoftware.b4a.keywords.Common.True;
|
|
//BA.debugLineNum = 36;BA.debugLine="B4XPages.Delegate.Activity_ActionBarHomeClick";
|
|
mostCurrent._b4xpages._delegate /*reparto_mazapa.keymon.lat.b4xpagesdelegator*/ ._activity_actionbarhomeclick /*String*/ ();
|
|
//BA.debugLineNum = 37;BA.debugLine="ActionBarHomeClicked = False";
|
|
_actionbarhomeclicked = anywheresoftware.b4a.keywords.Common.False;
|
|
//BA.debugLineNum = 38;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
public static String _activity_create(boolean _firsttime) throws Exception{
|
|
reparto_mazapa.keymon.lat.b4xpagesmanager _pm = null;
|
|
//BA.debugLineNum = 26;BA.debugLine="Sub Activity_Create(FirstTime As Boolean)";
|
|
//BA.debugLineNum = 27;BA.debugLine="Dim pm As B4XPagesManager";
|
|
_pm = new reparto_mazapa.keymon.lat.b4xpagesmanager();
|
|
//BA.debugLineNum = 28;BA.debugLine="pm.Initialize(Activity)";
|
|
_pm._initialize /*String*/ (mostCurrent.activityBA,mostCurrent._activity);
|
|
//BA.debugLineNum = 29;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
public static boolean _activity_keypress(int _keycode) throws Exception{
|
|
//BA.debugLineNum = 40;BA.debugLine="Sub Activity_KeyPress (KeyCode As Int) As Boolean";
|
|
//BA.debugLineNum = 41;BA.debugLine="Return B4XPages.Delegate.Activity_KeyPress(KeyCod";
|
|
if (true) return mostCurrent._b4xpages._delegate /*reparto_mazapa.keymon.lat.b4xpagesdelegator*/ ._activity_keypress /*boolean*/ (_keycode);
|
|
//BA.debugLineNum = 42;BA.debugLine="End Sub";
|
|
return false;
|
|
}
|
|
public static String _activity_pause(boolean _userclosed) throws Exception{
|
|
//BA.debugLineNum = 48;BA.debugLine="Sub Activity_Pause (UserClosed As Boolean)";
|
|
//BA.debugLineNum = 49;BA.debugLine="B4XPages.Delegate.Activity_Pause";
|
|
mostCurrent._b4xpages._delegate /*reparto_mazapa.keymon.lat.b4xpagesdelegator*/ ._activity_pause /*String*/ ();
|
|
//BA.debugLineNum = 50;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
public static String _activity_permissionresult(String _permission,boolean _result) throws Exception{
|
|
//BA.debugLineNum = 52;BA.debugLine="Sub Activity_PermissionResult (Permission As Strin";
|
|
//BA.debugLineNum = 53;BA.debugLine="B4XPages.Delegate.Activity_PermissionResult(Permi";
|
|
mostCurrent._b4xpages._delegate /*reparto_mazapa.keymon.lat.b4xpagesdelegator*/ ._activity_permissionresult /*String*/ (_permission,_result);
|
|
//BA.debugLineNum = 54;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
public static String _activity_resume() throws Exception{
|
|
//BA.debugLineNum = 44;BA.debugLine="Sub Activity_Resume";
|
|
//BA.debugLineNum = 45;BA.debugLine="B4XPages.Delegate.Activity_Resume";
|
|
mostCurrent._b4xpages._delegate /*reparto_mazapa.keymon.lat.b4xpagesdelegator*/ ._activity_resume /*String*/ ();
|
|
//BA.debugLineNum = 46;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
public static String _create_menu(Object _menu) throws Exception{
|
|
//BA.debugLineNum = 56;BA.debugLine="Sub Create_Menu (Menu As Object)";
|
|
//BA.debugLineNum = 57;BA.debugLine="B4XPages.Delegate.Create_Menu(Menu)";
|
|
mostCurrent._b4xpages._delegate /*reparto_mazapa.keymon.lat.b4xpagesdelegator*/ ._create_menu /*String*/ (_menu);
|
|
//BA.debugLineNum = 58;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
public static String _globals() throws Exception{
|
|
//BA.debugLineNum = 22;BA.debugLine="Sub Globals";
|
|
//BA.debugLineNum = 24;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
|
|
public static void initializeProcessGlobals() {
|
|
|
|
if (main.processGlobalsRun == false) {
|
|
main.processGlobalsRun = true;
|
|
try {
|
|
b4a.example.dateutils._process_globals();
|
|
main._process_globals();
|
|
appupdater._process_globals();
|
|
foto._process_globals();
|
|
mapa_cliente._process_globals();
|
|
mapa_rutas._process_globals();
|
|
starter._process_globals();
|
|
subs._process_globals();
|
|
tracker._process_globals();
|
|
newinst2._process_globals();
|
|
b4xpages._process_globals();
|
|
b4xcollections._process_globals();
|
|
httputils2service._process_globals();
|
|
xuiviewsutils._process_globals();
|
|
|
|
} catch (Exception e) {
|
|
throw new RuntimeException(e);
|
|
}
|
|
}
|
|
}public static String _process_globals() throws Exception{
|
|
//BA.debugLineNum = 18;BA.debugLine="Sub Process_Globals";
|
|
//BA.debugLineNum = 19;BA.debugLine="Public ActionBarHomeClicked As Boolean";
|
|
_actionbarhomeclicked = false;
|
|
//BA.debugLineNum = 20;BA.debugLine="End Sub";
|
|
return "";
|
|
}
|
|
public boolean _onCreateOptionsMenu(android.view.Menu menu) {
|
|
processBA.raiseEvent(null, "create_menu", menu);
|
|
return true;
|
|
}
|
|
}
|