org.iisgcp.waterwalk.activity.AboutActivity.java Source code

Java tutorial

Introduction

Here is the source code for org.iisgcp.waterwalk.activity.AboutActivity.java

Source

/*
 * Copyright (C) 2014 The Illinois-Indiana Sea Grant
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package org.iisgcp.waterwalk.activity;

import org.iisgcp.waterwalk.R;

import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;
import android.text.Html;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.WindowManager;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

import org.iisgcp.waterwalk.utils.InfoDialog;
import org.iisgcp.waterwalk.utils.LicenseDialog;
import org.iisgcp.waterwalk.utils.PictureInfoDialog;
import org.iisgcp.waterwalk.utils.Utils;

public class AboutActivity extends ActionBarActivity {

    private static final String PICTURE_INFO_DIALOG = "picture_info_dialog";
    private static final String INFO_DIALOG = "info_dialog";
    private static final String LICENSE_DIALOG = "license_dialog";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
        setTitle(R.string.title_about);
        setContentView(R.layout.activity_about);

        ActionBar actionBar = this.getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);

        TextView versionText = (TextView) findViewById(R.id.version_text);
        versionText.setText(getString(R.string.version));

        Button whoAreWeButton = (Button) findViewById(R.id.who_are_we_button);
        whoAreWeButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String dialogTitle = getString(R.string.who_are_we);
                String dialogText = getString(R.string.who_are_we_text);
                String altDialogText = getString(R.string.alt_who_are_we_text);
                Fragment fragment = PictureInfoDialog.newInstance(AboutActivity.this, dialogTitle, dialogText,
                        altDialogText);
                showDialog(fragment, PICTURE_INFO_DIALOG);
            }

        });

        Button creditsButton = (Button) findViewById(R.id.credits_button);
        creditsButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String dialogTitle = getString(R.string.credits);
                String dialogText = Html.fromHtml(Utils.getRawString(AboutActivity.this, R.raw.photo_credits))
                        .toString();
                String altDialogText = Html
                        .fromHtml(Utils.getRawString(AboutActivity.this, R.raw.photo_credits_alt)).toString();
                Fragment fragment = InfoDialog.newInstance(AboutActivity.this, dialogTitle, dialogText,
                        altDialogText);
                showDialog(fragment, INFO_DIALOG);
            }

        });

        Button websiteButton = (Button) findViewById(R.id.website_button);
        websiteButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(getString(R.string.website_url)));
                try {
                    startActivity(intent);
                } catch (ActivityNotFoundException ex) {

                }
            }

        });

        Button emailUsButton = (Button) findViewById(R.id.email_us_button);
        emailUsButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(Intent.ACTION_SEND);
                intent.putExtra(Intent.EXTRA_EMAIL, new String[] { getString(R.string.contact_email) });
                intent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.contact_subject));
                intent.setType("plain/text");
                try {
                    startActivity(intent);
                } catch (ActivityNotFoundException ex) {

                }
            }

        });

        Button copyrightButton = (Button) findViewById(R.id.copyright_button);
        copyrightButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String dialogTitle = getString(R.string.copyright);
                String dialogText = getString(R.string.university_copyright);
                Fragment fragment = InfoDialog.newInstance(AboutActivity.this, dialogTitle, dialogText);
                showDialog(fragment, INFO_DIALOG);
            }

        });

        Button licenseButton = (Button) findViewById(R.id.license_button);
        licenseButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                String dialogTitle = getString(R.string.licenses);
                String dialogText = "This application uses code from the <a href=\"http://source.android.com\">Android Open Source Project</a> released under the <a href=\"http://www.apache.org/licenses/LICENSE-2.0.html\">Apache License, Version 2.0</a> "
                        + "and <a href=\"https://github.com/nirhart/ParallaxScroll\">ParallaxScroll</a> released under the <a href=\"http://opensource.org/licenses/MIT\">MIT License</a>";
                Fragment fragment = LicenseDialog.newInstance(AboutActivity.this, dialogTitle, dialogText);
                showDialog(fragment, LICENSE_DIALOG);
            }

        });

        Button facebookButton = (Button) findViewById(R.id.facebook_button);
        facebookButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(getString(R.string.facebook_url)));
                try {
                    startActivity(intent);
                } catch (ActivityNotFoundException ex) {

                }
            }

        });

        Button twitterButton = (Button) findViewById(R.id.twitter_button);
        twitterButton.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setData(Uri.parse(getString(R.string.twitter_url)));
                try {
                    startActivity(intent);
                } catch (ActivityNotFoundException ex) {

                }
            }

        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.about_activity_menu, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        Intent intent = null;

        switch (item.getItemId()) {
        case android.R.id.home:
            intent = new Intent(this, MainActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(intent);
            return true;
        case R.id.menu_share:
            intent = new Intent(Intent.ACTION_SEND);
            intent.setType("text/plain");
            intent.putExtra(Intent.EXTRA_TEXT, getString(R.string.app_url));
            startActivity(Intent.createChooser(intent, getString(R.string.share_text)));
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

    private void showDialog(Fragment fragment, String tag) {
        // in a transaction.  We also want to remove any currently showing
        // dialog, so make our own transaction and take care of that here.
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        Fragment prev = getSupportFragmentManager().findFragmentByTag(tag);
        if (prev != null) {
            ft.remove(prev);
        }

        ft.add(0, fragment);
        ft.commit();
    }
}