content: package com.alium.orin.ui.activities;
  
  import android.content.Context;
  import android.content.Intent;
  import android.content.pm.PackageManager;
  import android.net.Uri;
  import android.os.Bundle;
  import android.support.annotation.NonNull;
  import android.support.v7.widget.AppCompatButton;
  import android.support.v7.widget.Toolbar;
  import android.view.MenuItem;
  import android.view.View;
  import android.widget.LinearLayout;
  import android.widget.TextView;
  
  import com.afollestad.materialdialogs.internal.ThemeSingleton;
  import com.alium.orin.dialogs.ChangelogDialog;
  import com.alium.orin.dialogs.DonationsDialog;
  import com.alium.orin.ui.activities.base.AbsBaseActivity;
  import com.alium.orin.ui.activities.bugreport.BugReportActivity;
  import com.kabouzeid.appthemehelper.ThemeStore;
  import com.alium.orin.R;
  import com.alium.orin.ui.activities.intro.AppIntroActivity;
  
  import butterknife.BindView;
  import butterknife.ButterKnife;
  import de.psdev.licensesdialog.LicensesDialog;
  
  /**
   * @author Karim Abou Zeid (kabouzeid)
   */
  @SuppressWarnings("FieldCanBeLocal")
  public class AboutActivity extends AbsBaseActivity implements View.OnClickListener {
  
      private static String GITHUB = "https://github.com/kabouzeid/Phonograph";
  
      private static String GOOGLE_PLUS = "https://google.com/+KarimAbouZeid23697";
      private static String TWITTER = "https://twitter.com/karim23697";
      private static String WEBSITE = "https://kabouzeid.com/";
  
      private static String GOOGLE_PLUS_COMMUNITY = "https://plus.google.com/u/0/communities/106227738496107108513";
      private static String TRANSLATE = "https://phonograph.oneskyapp.com/collaboration/project?id=26521";
      private static String RATE_ON_GOOGLE_PLAY = "https://play.google.com/store/apps/details?id=com.kabouzeid.gramophone";
  
      private static String AIDAN_FOLLESTAD_GOOGLE_PLUS = "https://google.com/+AidanFollestad";
      private static String AIDAN_FOLLESTAD_GITHUB = "https://github.com/afollestad";
  
      private static String MICHAEL_COOK_GOOGLE_PLUS = "https://plus.google.com/102718493746376292361";
      private static String MICHAEL_COOK_WEBSITE = "http://cookicons.co/";
  
      private static String MAARTEN_CORPEL_GOOGLE_PLUS = "https://google.com/+MaartenCorpel";
  
      private static String ALEKSANDAR_TESIC_GOOGLE_PLUS = "https://google.com/+aleksandartešić";
  
      @BindView(R.id.toolbar)
      Toolbar toolbar;
      @BindView(R.id.app_version)
      TextView appVersion;
      @BindView(R.id.changelog)
      LinearLayout changelog;
      @BindView(R.id.intro)
      LinearLayout intro;
      @BindView(R.id.licenses)
      LinearLayout licenses;
      @BindView(R.id.write_an_email)
      LinearLayout writeAnEmail;
      @BindView(R.id.add_to_google_plus_circles)
      LinearLayout addToGooglePlusCircles;
      @BindView(R.id.follow_on_twitter)
      LinearLayout followOnTwitter;
      @BindView(R.id.fork_on_github)
      LinearLayout forkOnGitHub;
      @BindView(R.id.visit_website)
      LinearLayout visitWebsite;
      @BindView(R.id.report_bugs)
      LinearLayout reportBugs;
      @BindView(R.id.join_google_plus_community)
      LinearLayout joinGooglePlusCommunity;
      @BindView(R.id.translate)
      LinearLayout translate;
      @BindView(R.id.donate)
      LinearLayout donate;
      @BindView(R.id.rate_on_google_play)
      LinearLayout rateOnGooglePlay;
      @BindView(R.id.aidan_follestad_google_plus)
      AppCompatButton aidanFollestadGooglePlus;
      @BindView(R.id.aidan_follestad_git_hub)
      AppCompatButton aidanFollestadGitHub;
      @BindView(R.id.michael_cook_google_plus)
      AppCompatButton michaelCookGooglePlus;
      @BindView(R.id.michael_cook_website)
      AppCompatButton michaelCookWebsite;
      @BindView(R.id.maarten_corpel_google_plus)
      AppCompatButton maartenCorpelGooglePlus;
      @BindView(R.id.aleksandar_tesic_google_plus)
      AppCompatButton aleksandarTesicGooglePlus;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_about);
          setDrawUnderStatusbar(true);
          ButterKnife.bind(this);
  
          setStatusbarColorAuto();
          setNavigationbarColorAuto();
          setTaskDescriptionColorAuto();
  
          setUpViews();
      }
  
      private void setUpViews() {
          setUpToolbar();
          setUpAppVersion();
          setUpOnClickListeners();
      }
  
      private void setUpToolbar() {
          toolbar.setBackgroundColor(ThemeStore.primaryColor(this));
          setSupportActionBar(toolbar);
          //noinspection ConstantConditions
          getSupportActionBar().setDisplayHomeAsUpEnabled(true);
      }
  
      private void setUpAppVersion() {
          appVersion.setText(getCurrentVersionName(this));
      }
  
      private void setUpOnClickListeners() {
          changelog.setOnClickListener(this);
          intro.setOnClickListener(this);
          licenses.setOnClickListener(this);
          addToGooglePlusCircles.setOnClickListener(this);
          followOnTwitter.setOnClickListener(this);
          forkOnGitHub.setOnClickListener(this);
          visitWebsite.setOnClickListener(this);
          reportBugs.setOnClickListener(this);
          writeAnEmail.setOnClickListener(this);
          joinGooglePlusCommunity.setOnClickListener(this);
          translate.setOnClickListener(this);
          rateOnGooglePlay.setOnClickListener(this);
          donate.setOnClickListener(this);
          aidanFollestadGooglePlus.setOnClickListener(this);
          aidanFollestadGitHub.setOnClickListener(this);
          michaelCookGooglePlus.setOnClickListener(this);
          michaelCookWebsite.setOnClickListener(this);
          maartenCorpelGooglePlus.setOnClickListener(this);
          aleksandarTesicGooglePlus.setOnClickListener(this);
      }
  
      @Override
      public boolean onOptionsItemSelected(@NonNull MenuItem item) {
          if (item.getItemId() == android.R.id.home) {
              onBackPressed();
              return true;
          }
          return super.onOptionsItemSelected(item);
      }
  
      private static String getCurrentVersionName(@NonNull final Context context) {
          try {
              return context.getPackageManager().getPackageInfo(context.getPackageName(), 0).versionName;
          } catch (PackageManager.NameNotFoundException e) {
              e.printStackTrace();
          }
          return "0.0.0";
      }
  
      @Override
      public void onClick(View v) {
          if (v == changelog) {
              ChangelogDialog.create().show(getSupportFragmentManager(), "CHANGELOG_DIALOG");
          } else if (v == licenses) {
              showLicenseDialog();
          } else if (v == intro) {
              startActivity(new Intent(this, AppIntroActivity.class));
          } else if (v == addToGooglePlusCircles) {
              openUrl(GOOGLE_PLUS);
          } else if (v == followOnTwitter) {
              openUrl(TWITTER);
          } else if (v == forkOnGitHub) {
              openUrl(GITHUB);
          } else if (v == visitWebsite) {
              openUrl(WEBSITE);
          } else if (v == reportBugs) {
              startActivity(new Intent(this, BugReportActivity.class));
          } else if (v == writeAnEmail) {
              Intent intent = new Intent(Intent.ACTION_SENDTO);
              intent.setData(Uri.parse("mailto:contact@kabouzeid.com"));
              intent.putExtra(Intent.EXTRA_EMAIL, "contact@kabouzeid.com");
              intent.putExtra(Intent.EXTRA_SUBJECT, "Phonograph");
              startActivity(Intent.createChooser(intent, "E-Mail"));
          } else if (v == joinGooglePlusCommunity) {
              openUrl(GOOGLE_PLUS_COMMUNITY);
          } else if (v == translate) {
              openUrl(TRANSLATE);
          } else if (v == rateOnGooglePlay) {
              openUrl(RATE_ON_GOOGLE_PLAY);
          } else if (v == donate) {
              DonationsDialog.create().show(getSupportFragmentManager(), "DONATION_DIALOG");
          } else if (v == aidanFollestadGooglePlus) {
              openUrl(AIDAN_FOLLESTAD_GOOGLE_PLUS);
          } else if (v == aidanFollestadGitHub) {
              openUrl(AIDAN_FOLLESTAD_GITHUB);
          } else if (v == michaelCookGooglePlus) {
              openUrl(MICHAEL_COOK_GOOGLE_PLUS);
          } else if (v == michaelCookWebsite) {
              openUrl(MICHAEL_COOK_WEBSITE);
          } else if (v == maartenCorpelGooglePlus) {
              openUrl(MAARTEN_CORPEL_GOOGLE_PLUS);
          } else if (v == aleksandarTesicGooglePlus) {
              openUrl(ALEKSANDAR_TESIC_GOOGLE_PLUS);
          }
      }
  
      private void openUrl(String url) {
          Intent i = new Intent(Intent.ACTION_VIEW);
          i.setData(Uri.parse(url));
          i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
          startActivity(i);
      }
  
      private void showLicenseDialog() {
          new LicensesDialog.Builder(this)
                  .setNotices(R.raw.notices)
                  .setTitle(R.string.licenses)
                  .setNoticesCssStyle(getString(R.string.license_dialog_style)
                          .replace("{bg-color}", ThemeSingleton.get().darkTheme ? "424242" : "ffffff")
                          .replace("{text-color}", ThemeSingleton.get().darkTheme ? "ffffff" : "000000")
                          .replace("{license-bg-color}", ThemeSingleton.get().darkTheme ? "535353" : "eeeeee")
                  )
                  .setIncludeOwnLicense(true)
                  .build()
                  .showAppCompat();
      }
  }
  