improved debugging interface

This commit is contained in:
fkloft
2013-12-30 18:55:26 +01:00
parent 9208552e29
commit 58dc56283a
19 changed files with 528 additions and 98 deletions

View File

@ -24,6 +24,9 @@ import android.view.View;
import android.view.Window;
import android.webkit.CookieManager;
import android.webkit.WebView;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
@ -49,8 +52,15 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis
private boolean mDesktopMode = false;
private boolean mAdvancedMenu = false;
private MenuItem mSearchMenuItem;
private View mImageLoading;
private ListView mLvDebug;
private View mViewDebug;
private ImageButton mBtnToggleMap;
private EditText mEditCommand;
private boolean mDebugging = false;
private boolean mReloadNeeded = false;
private boolean mIsLoading = true;
private boolean mShowMapInDebug = false;
private final Stack<String> mDialogStack = new Stack<String>();
// Used for custom back stack handling
@ -73,7 +83,14 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis
requestWindowFeature(Window.FEATURE_PROGRESS);
setContentView(R.layout.activity_main);
mImageLoading = findViewById(R.id.imageLoading);
mIitcWebView = (IITC_WebView) findViewById(R.id.iitc_webview);
mLvDebug = (ListView) findViewById(R.id.lvDebug);
mViewDebug = findViewById(R.id.viewDebug);
mBtnToggleMap = (ImageButton) findViewById(R.id.btnToggleMapVisibility);
mEditCommand = (EditText) findViewById(R.id.editCommand);
mLvDebug.setAdapter(new IITC_LogAdapter(this));
// do something if user changed something in the settings
mSharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
@ -425,6 +442,11 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis
: R.drawable.ic_action_location_found);
break;
case R.id.menu_debug:
item.setVisible(mAdvancedMenu && visible);
item.setChecked(mDebugging);
break;
default:
item.setVisible(visible);
}
@ -480,6 +502,13 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis
CookieManager cm = CookieManager.getInstance();
cm.removeAllCookie();
return true;
case R.id.menu_debug:
mDebugging = !mDebugging;
updateViews();
invalidateOptionsMenu();
// TODO remove debugging stuff from JS?
return true;
default:
return false;
}
@ -494,6 +523,7 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis
mNavigationHelper.reset();
mMapSettings.reset();
mUserLocation.reset();
mIitcWebView.getWebViewClient().reset();
mBackStack.clear();
// iitc starts on map after reload
mCurrentPane = Pane.MAP;
@ -585,15 +615,54 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis
mNavigationHelper.onLoadingStateChanged();
if (isLoading && !mSharedPrefs.getBoolean("pref_disable_splash", false)) {
findViewById(R.id.iitc_webview).setVisibility(View.GONE);
findViewById(R.id.imageLoading).setVisibility(View.VISIBLE);
updateViews();
}
private void updateViews() {
if (!mDebugging) {
mViewDebug.setVisibility(View.GONE);
mLvDebug.setVisibility(View.GONE);
if (mIsLoading && !mSharedPrefs.getBoolean("pref_disable_splash", false)) {
mIitcWebView.setVisibility(View.GONE);
mImageLoading.setVisibility(View.VISIBLE);
} else {
mIitcWebView.setVisibility(View.VISIBLE);
mImageLoading.setVisibility(View.GONE);
}
} else {
findViewById(R.id.iitc_webview).setVisibility(View.VISIBLE);
findViewById(R.id.imageLoading).setVisibility(View.GONE);
// if the debug container is invisible (and we are about to show it), select the text box
boolean select = mViewDebug.getVisibility() != View.VISIBLE;
mImageLoading.setVisibility(View.GONE); // never show splash screen while debugging
mViewDebug.setVisibility(View.VISIBLE);
if (select) {
mEditCommand.requestFocus();
mEditCommand.selectAll();
}
if (mShowMapInDebug) {
mBtnToggleMap.setImageResource(R.drawable.ic_action_view_as_list);
mIitcWebView.setVisibility(View.VISIBLE);
mLvDebug.setVisibility(View.GONE);
} else {
mBtnToggleMap.setImageResource(R.drawable.ic_action_map);
mIitcWebView.setVisibility(View.GONE);
mLvDebug.setVisibility(View.VISIBLE);
}
}
}
/**
* onClick handler for R.id.btnToggleMapVisibility, assigned in activity_main.xml
*/
public void onToggleMapVisibility(View v)
{
mShowMapInDebug = !mShowMapInDebug;
updateViews();
}
private void deleteUpdateFile() {
File file = new File(getExternalFilesDir(null).toString() + "/iitcUpdate.apk");
if (file != null) file.delete();