package com.fastebro.androidrgbtool.settings; import android.content.Intent; import android.net.Uri; import android.os.Build; import android.os.Bundle; import android.support.customtabs.CustomTabsIntent; import android.support.design.widget.Snackbar; import android.view.MenuItem; import com.fastebro.androidrgbtool.R; import com.fastebro.androidrgbtool.helpers.CustomTabActivityHelper; import com.fastebro.androidrgbtool.helpers.WebViewFallback; import com.fastebro.androidrgbtool.commons.BaseActivity; public class AboutActivity extends BaseActivity implements AboutFragment.OnPreferenceSelectedListener { private CustomTabActivityHelper customTabActivityHelper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if(getSupportActionBar() != null) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); } setupCustomTabHelper(); getFragmentManager().beginTransaction() .replace(android.R.id.content, new AboutFragment()) .commit(); } @Override protected void onStart() { super.onStart(); customTabActivityHelper.bindCustomTabsService(this); } @Override protected void onStop() { super.onStop(); customTabActivityHelper.unbindCustomTabsService(this); } @Override public boolean onOptionsItemSelected(MenuItem item) { if(item.getItemId() == android.R.id.home) { finishAfterTransition(); return true; } else { return super.onOptionsItemSelected(item); } } private void setupCustomTabHelper() { customTabActivityHelper = new CustomTabActivityHelper(); customTabActivityHelper.setConnectionCallback(connectionCallback); } private final CustomTabActivityHelper.ConnectionCallback connectionCallback = new CustomTabActivityHelper .ConnectionCallback() { @Override public void onCustomTabsConnected() { // Use this callback to perform UI changes. } @Override public void onCustomTabsDisconnected() { // Use this callback to perform UI changes. } }; @Override public void onPreferenceWithUriSelected(Uri uri) { CustomTabsIntent.Builder intentBuilder = new CustomTabsIntent.Builder(); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { intentBuilder.setToolbarColor(getResources().getColor(R.color.primary, getTheme())); } else { //noinspection deprecation intentBuilder.setToolbarColor(getResources().getColor(R.color.primary)); } intentBuilder.setShowTitle(true); CustomTabActivityHelper.openCustomTab(this, intentBuilder.build(), uri, new WebViewFallback()); } @Override public void onPreferenceSendEmailSelected(String[] addresses, String subject) { composeEmail(addresses, subject); } private void composeEmail(String[] addresses, String subject) { Intent intent = new Intent(Intent.ACTION_SENDTO); // Only email apps should handle this. intent.setData(Uri.parse("mailto:")); intent.putExtra(Intent.EXTRA_EMAIL, addresses); intent.putExtra(Intent.EXTRA_SUBJECT, subject); if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } else { //noinspection ConstantConditions Snackbar.make(findViewById(android.R.id.content), getString(R.string.action_not_supported_error), Snackbar.LENGTH_SHORT).show(); } } }