package be.digitalia.fosdem.activities; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.support.customtabs.CustomTabsIntent; import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.text.TextUtils; import android.view.MenuItem; import android.widget.ImageView; import be.digitalia.fosdem.R; import be.digitalia.fosdem.api.FosdemUrls; import be.digitalia.fosdem.utils.StringUtils; /** * A special Activity which is displayed like a dialog and shows a room image. * Specify the room name and the room image id as Intent extras. * * @author Christophe Beyls */ public class RoomImageDialogActivity extends AppCompatActivity { public static final String EXTRA_ROOM_NAME = "roomName"; public static final String EXTRA_ROOM_IMAGE_RESOURCE_ID = "imageResId"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Intent intent = getIntent(); final String roomName = intent.getStringExtra(EXTRA_ROOM_NAME); setTitle(roomName); setContentView(R.layout.dialog_room_image); ((ImageView) findViewById(R.id.room_image)).setImageResource(intent.getIntExtra(EXTRA_ROOM_IMAGE_RESOURCE_ID, 0)); configureToolbar(this, (Toolbar) findViewById(R.id.toolbar), roomName); } public static void configureToolbar(final Activity context, final Toolbar toolbar, final String roomName) { toolbar.setTitle(roomName); if (!TextUtils.isEmpty(roomName)) { toolbar.inflateMenu(R.menu.room_image_dialog); toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { switch (item.getItemId()) { case R.id.navigation: String localNavigationUrl = FosdemUrls.getLocalNavigationToLocation(StringUtils.toSlug(roomName)); try { new CustomTabsIntent.Builder() .setToolbarColor(ContextCompat.getColor(context, R.color.color_primary)) .setShowTitle(true) .build() .launchUrl(context, Uri.parse(localNavigationUrl)); } catch (ActivityNotFoundException ignore) { } break; } return false; } }); } } }