From efb6049ff4a58759e8db97a9155d77961f85165f Mon Sep 17 00:00:00 2001 From: Protino Date: Fri, 17 Jun 2016 18:36:17 +0530 Subject: [PATCH] added share button --- .../Fragment/DetailActivityFragment.java | 42 +++++++++++++++++++ .../Fragment/ForecastFragment.java | 4 ++ app/src/main/res/menu/menu_detail.xml | 9 ++-- app/src/main/res/values/strings.xml | 1 + 4 files changed, 52 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/DetailActivityFragment.java b/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/DetailActivityFragment.java index a06cd14..cf8211c 100644 --- a/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/DetailActivityFragment.java +++ b/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/DetailActivityFragment.java @@ -4,7 +4,12 @@ import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; +import android.support.v4.view.MenuItemCompat; +import android.support.v7.widget.ShareActionProvider; import android.view.LayoutInflater; +import android.view.Menu; +import android.view.MenuInflater; +import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; @@ -18,6 +23,7 @@ public class DetailActivityFragment extends Fragment { public static String forecastData; private String LOG_TAG = DetailActivityFragment.class.getSimpleName(); + private ShareActionProvider myShareActionProvider; public DetailActivityFragment() { } @@ -28,6 +34,42 @@ public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); } + @Override + public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { + inflater.inflate(R.menu.menu_detail, menu); + MenuItem shareItem = menu.findItem(R.id.action_share); + myShareActionProvider = (ShareActionProvider) MenuItemCompat.getActionProvider(shareItem); + + myShareActionProvider.setShareIntent(createShareIntent()); + super.onCreateOptionsMenu(menu, inflater); + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + int id = item.getItemId(); + + switch (id) { + case R.id.action_share: + break; + } + return super.onOptionsItemSelected(item); + } + + private Intent createShareIntent() { + Intent myShareIntent = new Intent(Intent.ACTION_SEND); + myShareIntent.setType("text/plain"); + myShareIntent.putExtra(Intent.EXTRA_TEXT, forecastData + "#Sunshine_App"); + setShareIntent(myShareIntent); + return myShareIntent; + } + + // Call to update the share intent + private void setShareIntent(Intent shareIntent) { + if (myShareActionProvider != null) { + myShareActionProvider.setShareIntent(shareIntent); + } + } + @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { diff --git a/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/ForecastFragment.java b/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/ForecastFragment.java index 2786ad7..f35000b 100644 --- a/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/ForecastFragment.java +++ b/app/src/main/java/com/calgen/prodek/sunshine_v2/Fragment/ForecastFragment.java @@ -68,6 +68,10 @@ public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); switch (id) { + + case R.id.action_refresh: + updateWeather(); + return true; } return super.onOptionsItemSelected(item); } diff --git a/app/src/main/res/menu/menu_detail.xml b/app/src/main/res/menu/menu_detail.xml index e889598..e977396 100644 --- a/app/src/main/res/menu/menu_detail.xml +++ b/app/src/main/res/menu/menu_detail.xml @@ -2,9 +2,10 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" tools:context=".Activity.DetailActivity"> + + android:id="@+id/action_share" + android:title="@string/action_share" + app:actionProviderClass="android.support.v7.widget.ShareActionProvider" + app:showAsAction="ifRoom" /> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a4ca08a..05eb996 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -20,6 +20,7 @@ metric temperature Map + Share