diff --git a/mobile/res/drawable-hdpi/ic_action_place.png b/mobile/res/drawable-hdpi/ic_action_place.png new file mode 100644 index 00000000..dba994d8 Binary files /dev/null and b/mobile/res/drawable-hdpi/ic_action_place.png differ diff --git a/mobile/res/drawable-hdpi/ic_action_settings.png b/mobile/res/drawable-hdpi/ic_action_settings.png deleted file mode 100644 index f50c2d3a..00000000 Binary files a/mobile/res/drawable-hdpi/ic_action_settings.png and /dev/null differ diff --git a/mobile/res/drawable-mdpi/ic_action_place.png b/mobile/res/drawable-mdpi/ic_action_place.png new file mode 100644 index 00000000..ce055ca6 Binary files /dev/null and b/mobile/res/drawable-mdpi/ic_action_place.png differ diff --git a/mobile/res/drawable-mdpi/ic_action_settings.png b/mobile/res/drawable-mdpi/ic_action_settings.png deleted file mode 100644 index 04f61dea..00000000 Binary files a/mobile/res/drawable-mdpi/ic_action_settings.png and /dev/null differ diff --git a/mobile/res/drawable-xhdpi/ic_action_place.png b/mobile/res/drawable-xhdpi/ic_action_place.png new file mode 100644 index 00000000..49adf813 Binary files /dev/null and b/mobile/res/drawable-xhdpi/ic_action_place.png differ diff --git a/mobile/res/drawable-xhdpi/ic_action_settings.png b/mobile/res/drawable-xhdpi/ic_action_settings.png deleted file mode 100644 index 3f2f394f..00000000 Binary files a/mobile/res/drawable-xhdpi/ic_action_settings.png and /dev/null differ diff --git a/mobile/res/drawable-xxhdpi/ic_action_place.png b/mobile/res/drawable-xxhdpi/ic_action_place.png new file mode 100644 index 00000000..25623c77 Binary files /dev/null and b/mobile/res/drawable-xxhdpi/ic_action_place.png differ diff --git a/mobile/res/drawable-xxhdpi/ic_action_settings.png b/mobile/res/drawable-xxhdpi/ic_action_settings.png deleted file mode 100644 index 6725c082..00000000 Binary files a/mobile/res/drawable-xxhdpi/ic_action_settings.png and /dev/null differ diff --git a/mobile/res/menu/main.xml b/mobile/res/menu/main.xml index 8ddb56e3..63790b3f 100644 --- a/mobile/res/menu/main.xml +++ b/mobile/res/menu/main.xml @@ -19,20 +19,20 @@ android:showAsAction="ifRoom" android:title="@string/layer_chooser"> - - + + diff --git a/mobile/res/values/strings.xml b/mobile/res/values/strings.xml index e6e934f0..8d1ed63c 100644 --- a/mobile/res/values/strings.xml +++ b/mobile/res/values/strings.xml @@ -150,9 +150,9 @@ Copied to clipboard… Do not show again - Map + Locate Share - Browser + Intel Highlighter Base Layer diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java index 3332f442..ea2b4092 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_Mobile.java @@ -324,6 +324,12 @@ public class IITC_Mobile extends Activity implements OnSharedPreferenceChangeLis super.onStop(); } + @Override + protected void onDestroy() { + unregisterReceiver(mBroadcastReceiver); + super.onDestroy(); + } + @Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java index c0c0fccf..f00cad8d 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_WebView.java @@ -71,7 +71,15 @@ public class IITC_WebView extends WebView { @Override public void run() { if (isInFullscreen() && (getFullscreenStatus() & (FS_NAVBAR)) != 0) { - setSystemUiVisibility(SYSTEM_UI_FLAG_HIDE_NAVIGATION); + int systemUiVisibility = SYSTEM_UI_FLAG_HIDE_NAVIGATION; + // in immersive mode the user can interact with the app while the navbar is hidden + // this mode is available since KitKat + // you can leave this mode by swiping down from the top of the screen. this does only work + // when the app is in total-fullscreen mode + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT && (mFullscreenStatus & FS_SYSBAR) != 0) { + systemUiVisibility |= SYSTEM_UI_FLAG_IMMERSIVE; + } + setSystemUiVisibility(systemUiVisibility); } } }; @@ -165,12 +173,7 @@ public class IITC_WebView extends WebView { public void loadJS(String js) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { - evaluateJavascript(js, new ValueCallback() { - @Override - public void onReceiveValue(String value) { - // maybe we want to add stuff here - } - }); + evaluateJavascript(js, null); } else { // if in edit text mode, don't load javascript otherwise the keyboard closes. HitTestResult testResult = getHitTestResult(); @@ -190,20 +193,22 @@ public class IITC_WebView extends WebView { @Override public boolean onTouchEvent(MotionEvent event) { getHandler().removeCallbacks(mNavHider); - getHandler().postDelayed(mNavHider, 2000); + getHandler().postDelayed(mNavHider, 3000); return super.onTouchEvent(event); } @Override public void setSystemUiVisibility(int visibility) { - getHandler().postDelayed(mNavHider, 2000); + if ((visibility & SYSTEM_UI_FLAG_HIDE_NAVIGATION) == 0) { + getHandler().postDelayed(mNavHider, 3000); + } super.setSystemUiVisibility(visibility); } @Override public void onWindowFocusChanged(boolean hasWindowFocus) { if (hasWindowFocus) { - getHandler().postDelayed(mNavHider, 2000); + getHandler().postDelayed(mNavHider, 3000); } else { getHandler().removeCallbacks(mNavHider); } @@ -225,7 +230,7 @@ public class IITC_WebView extends WebView { attrs.flags |= WindowManager.LayoutParams.FLAG_FULLSCREEN; } if ((mFullscreenStatus & FS_NAVBAR) != 0) { - setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION); + getHandler().post(mNavHider); } if ((mFullscreenStatus & FS_STATUSBAR) != 0) { loadUrl("javascript: $('#updatestatus').hide();"); diff --git a/mobile/src/com/cradle/iitc_mobile/share/IntentListView.java b/mobile/src/com/cradle/iitc_mobile/share/IntentListView.java index fdec0b86..785c1edb 100644 --- a/mobile/src/com/cradle/iitc_mobile/share/IntentListView.java +++ b/mobile/src/com/cradle/iitc_mobile/share/IntentListView.java @@ -9,6 +9,7 @@ import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.graphics.drawable.Drawable; import android.util.AttributeSet; +import android.util.DisplayMetrics; import android.util.Pair; import android.view.LayoutInflater; import android.view.View; @@ -37,6 +38,10 @@ public class IntentListView extends ListView { } private class IntentAdapter extends ArrayAdapter { + + // actually the mdpi pixel size is 48, but this looks ugly...so scale icons down for listView + private static final int MDPI_PX = 36; + private IntentAdapter() { super(IntentListView.this.getContext(), android.R.layout.simple_list_item_1); } @@ -48,11 +53,19 @@ public class IntentListView extends ListView { ActivityInfo info = getItem(position).activityInfo; CharSequence label = info.loadLabel(mPackageManager); + + // get icon and scale it manually to ensure that all have the same size Drawable icon = info.loadIcon(mPackageManager); + DisplayMetrics dm = new DisplayMetrics(); + ((Activity) getContext()).getWindowManager().getDefaultDisplay().getMetrics(dm); + float densityScale = dm.density; + float scaledWidth = MDPI_PX * densityScale; + float scaledHeight = MDPI_PX * densityScale; + icon.setBounds(0,0,Math.round(scaledWidth),Math.round(scaledHeight)); view.setText(label); view.setCompoundDrawablePadding((int) getResources().getDimension(R.dimen.icon_margin)); - view.setCompoundDrawablesWithIntrinsicBounds(icon, null, null, null); + view.setCompoundDrawables(icon, null, null, null); return view; } diff --git a/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java b/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java index 24523eeb..b09e57f9 100644 --- a/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java +++ b/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java @@ -81,7 +81,7 @@ public class ShareActivity extends FragmentActivity implements ActionBar.TabList String geoUri = "geo:" + mLl; Intent geoIntent = new Intent(android.content.Intent.ACTION_VIEW, Uri.parse(geoUri)); intents.add(geoIntent); - addTab(intents, R.string.tab_map, R.drawable.ic_action_map); + addTab(intents, R.string.tab_map, R.drawable.ic_action_place); Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(getUrl())); addTab(intent, R.string.tab_browser, R.drawable.ic_action_web_site); @@ -122,6 +122,9 @@ public class ShareActivity extends FragmentActivity implements ActionBar.TabList setupShareIntent(intent.getStringExtra("shareString")); } + // show portal name as action bar title, if available + if (mTitle != getString(R.string.app_name)) actionBar.setTitle(mTitle); + mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mFragmentAdapter);