Java tutorial
/* * GoBees * Copyright (c) 2016 - 2017 David Miguel Lozano * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <https://www.gnu.org/licenses/gpl-3.0.txt>. */ package com.davidmiguel.gobees.apiaries; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.support.design.widget.NavigationView; import android.support.v4.view.GravityCompat; import android.support.v4.widget.DrawerLayout; import android.view.MenuItem; import com.davidmiguel.gobees.R; import com.davidmiguel.gobees.about.AboutActivity; import com.davidmiguel.gobees.help.HelpActivity; import com.davidmiguel.gobees.settings.SettingsActivity; import com.davidmiguel.gobees.utils.AndroidUtils; import com.davidmiguel.gobees.utils.BaseActivity; /** * Apiaries activity. */ public class ApiariesActivity extends BaseActivity { private DrawerLayout drawerLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.apiaries_act); // Set up the toolbar AndroidUtils.setUpToolbar(this, true); // Set up the navigation drawer. drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); drawerLayout.setStatusBarBackground(R.color.colorPrimaryDark); NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); if (navigationView != null) { setupDrawerContent(navigationView); } // Add fragment to the activity ApiariesFragment apiariesFragment = (ApiariesFragment) getSupportFragmentManager() .findFragmentById(R.id.contentFrame); if (apiariesFragment == null) { // Create the fragment apiariesFragment = ApiariesFragment.newInstance(); AndroidUtils.addFragmentToActivity(getSupportFragmentManager(), apiariesFragment, R.id.contentFrame); } // Set default preferences values PreferenceManager.setDefaultValues(this, R.xml.general_settings, false); // Create the presenter new ApiariesPresenter(goBeesRepository, apiariesFragment); } @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == android.R.id.home) { // Open the navigation drawer when the home icon is selected from the toolbar drawerLayout.openDrawer(GravityCompat.START); return true; } return super.onOptionsItemSelected(item); } /** * Set the actions to be carried out from the drawerLayout. */ private void setupDrawerContent(NavigationView navigationView) { navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { @Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { switch (menuItem.getItemId()) { case R.id.settings_navigation_menu_item: // Settings openSettings(); break; case R.id.help_navigation_menu_item: // Help openHelp(); break; case R.id.feedback_navigation_menu_item: // Feedback openSendFeedback(); break; case R.id.share_app_navigation_menu_item: // Share app openShareApp(); break; case R.id.about_navigation_menu_item: // About openAbout(); break; default: break; } // Close the navigation drawer when an item is selected. menuItem.setChecked(false); drawerLayout.closeDrawers(); return true; } }); } /** * Opens settings section. */ private void openSettings() { Intent intent = new Intent(this, SettingsActivity.class); startActivity(intent); } /** * Opens help section. */ private void openHelp() { Intent helpIntent = new Intent(ApiariesActivity.this, HelpActivity.class); startActivity(helpIntent); } /** * Opens send feedback option. */ private void openSendFeedback() { Intent emailIntent = new Intent(Intent.ACTION_SENDTO, Uri.parse("mailto:" + getString(R.string.gobees_email))); emailIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.gobees_email_subject)); emailIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.gobees_email_body)); startActivity(Intent.createChooser(emailIntent, getString(R.string.feedback_title))); } /** * Opens share app option. */ private void openShareApp() { Intent sendIntent = new Intent(); sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, getString(R.string.share_app_text) + Uri.parse(getString(R.string.share_app_url))); sendIntent.setType("text/plain"); startActivity(Intent.createChooser(sendIntent, getString(R.string.share_app_title))); } /** * Opens about section. */ private void openAbout() { Intent aboutIntent = new Intent(ApiariesActivity.this, AboutActivity.class); startActivity(aboutIntent); } }