diff --git a/mobile/.idea/misc.xml b/mobile/.idea/misc.xml index 1c9e3220..3b54f562 100644 --- a/mobile/.idea/misc.xml +++ b/mobile/.idea/misc.xml @@ -3,7 +3,7 @@ - + diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java index 1798f70f..330d7955 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_JSInterface.java @@ -51,6 +51,15 @@ public class IITC_JSInterface { mContext.startActivity(intent); } + // share a string to the IITC share activity. only uses the share tab. + @JavascriptInterface + public void shareString(String str) { + Intent intent = new Intent(mContext, ShareActivity.class); + intent.putExtra("shareString", str); + intent.putExtra("onlyShare", true); + mContext.startActivity(intent); + } + // disable javascript injection while spinner is enabled // prevent the spinner from closing automatically @JavascriptInterface diff --git a/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java b/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java index d85aff49..756d6b64 100644 --- a/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java +++ b/mobile/src/com/cradle/iitc_mobile/share/ShareActivity.java @@ -64,13 +64,17 @@ public class ShareActivity extends FragmentActivity implements ActionBar.TabList .apply(); } - private void setupIntents() { + private void setupShareIntent(String str) { Intent intent = new Intent(Intent.ACTION_SEND); intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); intent.setType("text/plain"); - intent.putExtra(Intent.EXTRA_TEXT, getUrl()); + intent.putExtra(Intent.EXTRA_TEXT, str); intent.putExtra(Intent.EXTRA_SUBJECT, mTitle); addTab(intent, R.string.tab_share, R.drawable.share); + } + + private void setupIntents() { + setupShareIntent(getUrl()); // we merge gmaps intents with geo intents since it is not possible // anymore to set a labeled marker on geo intents @@ -95,7 +99,7 @@ public class ShareActivity extends FragmentActivity implements ActionBar.TabList intents.add(geoIntent); addTab(intents, R.string.tab_map, R.drawable.location_map); - intent = new Intent(Intent.ACTION_VIEW, Uri.parse(getUrl())); + Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(getUrl())); addTab(intent, R.string.tab_browser, R.drawable.browser); } @@ -104,18 +108,25 @@ public class ShareActivity extends FragmentActivity implements ActionBar.TabList super.onCreate(savedInstanceState); setContentView(R.layout.activity_share); - Intent intent = getIntent(); - mTitle = intent.getStringExtra("title"); - mLl = intent.getDoubleExtra("lat", 0) + "," + intent.getDoubleExtra("lng", 0); - mZoom = intent.getIntExtra("zoom", 0); - mIsPortal = intent.getBooleanExtra("isPortal", false); + mFragmentAdapter = new IntentFragmentAdapter(getSupportFragmentManager()); final ActionBar actionBar = getActionBar(); actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); actionBar.setDisplayHomeAsUpEnabled(true); - mFragmentAdapter = new IntentFragmentAdapter(getSupportFragmentManager()); - setupIntents(); + Intent intent = getIntent(); + // from portallinks/permalinks we build 3 intents (share / geo / vanilla-intel-link) + if (intent.getBooleanExtra("onlyShare", false) == false) { + mTitle = intent.getStringExtra("title"); + mLl = intent.getDoubleExtra("lat", 0) + "," + intent.getDoubleExtra("lng", 0); + mZoom = intent.getIntExtra("zoom", 0); + mIsPortal = intent.getBooleanExtra("isPortal", false); + + setupIntents(); + } else { + mTitle = getString(R.string.app_name); + setupShareIntent(intent.getStringExtra("shareString")); + } mViewPager = (ViewPager) findViewById(R.id.pager); mViewPager.setAdapter(mFragmentAdapter);