This commit is contained in:
Jon Atkins 2013-06-15 17:10:10 +01:00
commit 24445d922b
5 changed files with 40 additions and 6 deletions

View File

@ -44,6 +44,8 @@
<string name="pref_force_desktop_sum">Nice for tablets, looks awful on smartphones</string>
<string name="pref_force_https">Force https</string>
<string name="pref_force_https_sum">Disabling may improve performance</string>
<string name="pref_press_twice_to_exit">Press back button twice to exit</string>
<string name="pref_press_twice_to_exit_sum">Avoids accidental exits</string>
<string name="pref_developer_options">Developer options</string>
<string name="pref_enable_dev_mode">Enable developer mode</string>
<string name="pref_enable_dev_mode_sum">If enabled, all IITC sources will be loaded from external storage of the Android device.

View File

@ -50,6 +50,11 @@
android:title="@string/pref_force_https"
android:summary="@string/pref_force_https_sum"
android:defaultValue="true" />
<CheckBoxPreference
android:key="pref_press_twice_to_exit"
android:title="@string/pref_press_twice_to_exit"
android:summary="@string/pref_press_twice_to_exit_sum"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory

View File

@ -19,6 +19,7 @@ import android.net.NetworkInfo;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.os.StrictMode;
import android.preference.PreferenceManager;
import android.util.Log;
@ -49,11 +50,13 @@ public class IITC_Mobile extends Activity {
private boolean desktop = false;
private boolean reload_needed = false;
private ArrayList<String> dialogStack = new ArrayList<String>();
private SharedPreferences sharedPref;
// Used for custom back stack handling
private ArrayList<Integer> backStack = new ArrayList<Integer>();
private boolean backStack_push = true;
private int currentPane = android.R.id.home;
private boolean back_button_pressed = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -78,7 +81,7 @@ public class IITC_Mobile extends Activity {
actionBar.setHomeButtonEnabled(true);
// do something if user changed something in the settings
SharedPreferences sharedPref = PreferenceManager
sharedPref = PreferenceManager
.getDefaultSharedPreferences(this);
listener = new OnSharedPreferenceChangeListener() {
@Override
@ -104,6 +107,10 @@ public class IITC_Mobile extends Activity {
// no iitc reload needed here
return;
}
// no reload needed
if (key.equals("pref_press_twice_to_exit"))
return;
reload_needed = true;
}
};
@ -285,7 +292,19 @@ public class IITC_Mobile extends Activity {
// Pop last item from backStack and pretend the relevant menu item was clicked
backStackPop();
} else {
super.onBackPressed();
if (back_button_pressed || !sharedPref.getBoolean("pref_press_twice_to_exit", false))
super.onBackPressed();
else {
back_button_pressed = true;
Toast.makeText(this, "Press twice to exit", Toast.LENGTH_SHORT).show();
// reset back button after 2 seconds
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
back_button_pressed=false;
}
}, 2000);
}
}
}
@ -369,6 +388,8 @@ public class IITC_Mobile extends Activity {
actionBar.setTitle(getString(R.string.app_name));
backStack.clear();
setActionBarHomeEnabledWithUp(false);
// iitc starts on map after reload
currentPane = android.R.id.home;
this.loadUrl(intel_url);
return true;
case R.id.toggle_fullscreen:

View File

@ -147,9 +147,9 @@ public class IITC_WebViewClient extends WebViewClient {
@Override
public void onPageFinished(WebView view, String url) {
if (url.contains("accounts.google.com")) {
Log.d("iitcm", "reload after login");
Log.d("iitcm", "reload after login/logout");
IITC_Mobile main_activity = ((IITC_Mobile) context);
main_activity.loadUrl(main_activity.intel_url);
main_activity.handleMenuItemSelected(R.id.reload_button);
return;
}
super.onPageFinished(view, url);

View File

@ -303,12 +303,18 @@
// If it's a map
if(typeList == 'bkmrk_maps'){
if(bkmrk['label']==''){ label = bkmrk['latlng']+' ['+bkmrk['z']+']'; }
btn_link = '<a class="bookmarksLink" onclick="map.setView(['+latlng+'], '+bkmrk['z']+');return false;">'+label+'</a>';
if (!window.isSmartphone())
btn_link = '<a class="bookmarksLink" onclick="map.setView(['+latlng+'], '+bkmrk['z']+');return false;">'+label+'</a>';
else
btn_link = '<a class="bookmarksLink" onclick="map.setView(['+latlng+'], '+bkmrk['z']+'); window.show(\'map\'); return false;">'+label+'</a>';
}
// If it's a portal
else if(typeList == 'bkmrk_portals'){
var guid = bkmrk['guid'];
var btn_link = '<a class="bookmarksLink" onclick="window.zoomToAndShowPortal(\''+guid+'\', ['+latlng+']);return false;">'+label+'</a>';
if (!window.isSmartphone())
var btn_link = '<a class="bookmarksLink" onclick="window.zoomToAndShowPortal(\''+guid+'\', ['+latlng+']);return false;">'+label+'</a>';
else
var btn_link = '<a class="bookmarksLink" onclick="window.zoomToAndShowPortal(\''+guid+'\', ['+latlng+']); window.show(\'map\'); return false;">'+label+'</a>';
}
// Create the bookmark
elementTemp += '<li class="bkmrk" id="'+idBkmrk+'">'+btn_remove+btn_link+'</li>';