summaryrefslogtreecommitdiff
path: root/app/src/main/java/de/danoeh/antennapod
diff options
context:
space:
mode:
authorDomingos Lopes <domingos86lopes+github@gmail.com>2016-03-28 03:34:07 -0400
committerDomingos Lopes <domingos86lopes+github@gmail.com>2016-04-23 21:39:57 -0400
commite70f4d5389fc21fc00e3ecdda0e86f07873883ba (patch)
tree8f662b7a87da349ba13b0d445217b1d2bdeb0abc /app/src/main/java/de/danoeh/antennapod
parentc915366c7b813e1d51f8bd992d334f6e7e675212 (diff)
downloadAntennaPod-e70f4d5389fc21fc00e3ecdda0e86f07873883ba.zip
fix media router button still showing when disabled
Diffstat (limited to 'app/src/main/java/de/danoeh/antennapod')
-rw-r--r--app/src/main/java/de/danoeh/antennapod/activity/CastEnabledActivity.java30
1 files changed, 19 insertions, 11 deletions
diff --git a/app/src/main/java/de/danoeh/antennapod/activity/CastEnabledActivity.java b/app/src/main/java/de/danoeh/antennapod/activity/CastEnabledActivity.java
index 0ce90eae3..82cf0eed1 100644
--- a/app/src/main/java/de/danoeh/antennapod/activity/CastEnabledActivity.java
+++ b/app/src/main/java/de/danoeh/antennapod/activity/CastEnabledActivity.java
@@ -4,11 +4,12 @@ import android.content.SharedPreferences;
import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
+import android.util.Log;
import android.view.Menu;
-import android.view.MenuItem;
import de.danoeh.antennapod.R;
import de.danoeh.antennapod.core.cast.CastManager;
+import de.danoeh.antennapod.core.cast.SwitchableMediaRouteActionProvider;
import de.danoeh.antennapod.core.preferences.UserPreferences;
/**
@@ -17,17 +18,18 @@ import de.danoeh.antennapod.core.preferences.UserPreferences;
*/
public abstract class CastEnabledActivity extends AppCompatActivity
implements SharedPreferences.OnSharedPreferenceChangeListener {
+ public static final String TAG = "CastEnabledActivity";
protected CastManager mCastManager;
- private int castUICounter;
- protected MenuItem mMediaRouteMenuItem;
- protected boolean isCastEnabled;
+ private volatile int castUICounter;
+ protected SwitchableMediaRouteActionProvider mMediaRouteActionProvider;
+ protected volatile boolean isCastEnabled;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- PreferenceManager.getDefaultSharedPreferences(this).
+ PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).
registerOnSharedPreferenceChangeListener(this);
castUICounter = 0;
@@ -36,6 +38,13 @@ public abstract class CastEnabledActivity extends AppCompatActivity
}
@Override
+ protected void onDestroy() {
+ PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
+ .unregisterOnSharedPreferenceChangeListener(this);
+ super.onDestroy();
+ }
+
+ @Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.cast_enabled, menu);
@@ -45,9 +54,9 @@ public abstract class CastEnabledActivity extends AppCompatActivity
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
- mMediaRouteMenuItem = menu.findItem(R.id.media_route_menu_item);
- mMediaRouteMenuItem.setEnabled(isCastEnabled);
- mMediaRouteMenuItem = mCastManager.addMediaRouterButton(menu, R.id.media_route_menu_item);
+ mMediaRouteActionProvider = mCastManager
+ .addMediaRouterButton(menu.findItem(R.id.media_route_menu_item));
+ mMediaRouteActionProvider.setEnabled(isCastEnabled);
return true;
}
@@ -71,13 +80,12 @@ public abstract class CastEnabledActivity extends AppCompatActivity
}
}
- //This whole method might just be useless because it's assumed that the cast button
- //won't show where the user actually has the power to change the preference.
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
if (key.equals(UserPreferences.PREF_CAST_ENABLED)) {
isCastEnabled = UserPreferences.isCastEnabled();
- mMediaRouteMenuItem.setEnabled(isCastEnabled);
+ Log.d(TAG, "onSharedPreferenceChanged(), isCastEnabled set to " + isCastEnabled);
+ mMediaRouteActionProvider.setEnabled(isCastEnabled);
if (isCastEnabled) {
//Test if activity is resumed but without UI counter incremented
if (castUICounter==1) {