diff options
-rw-r--r-- | res/values/cm_strings.xml | 5 | ||||
-rw-r--r-- | src/com/cyngn/audiofx/Compatibility.java | 16 | ||||
-rw-r--r-- | src/com/cyngn/audiofx/Constants.java | 9 | ||||
-rw-r--r-- | src/com/cyngn/audiofx/fragment/AudioFxFragment.java | 62 |
4 files changed, 69 insertions, 23 deletions
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml index a3e5cbd..acbc92e 100644 --- a/res/values/cm_strings.xml +++ b/res/values/cm_strings.xml @@ -15,6 +15,11 @@ limitations under the License. --> <resources xmlns:xliff="rn:oasis:names:tc:xliff:document:1.2"> + + <string name="snack_bar_not_default">AudioFX is not your default effects control panel.</string> + <string name="snack_bar_not_default_set">Set default</string> + <string name="snack_bar_not_default_not_now">Not now</string> + <string name="normal">Normal</string> <string name="classical">Classical</string> <string name="dance">Dance</string> diff --git a/src/com/cyngn/audiofx/Compatibility.java b/src/com/cyngn/audiofx/Compatibility.java index 9819659..313c480 100644 --- a/src/com/cyngn/audiofx/Compatibility.java +++ b/src/com/cyngn/audiofx/Compatibility.java @@ -66,8 +66,8 @@ public class Compatibility { Intent i = new Intent(getIntent()); i.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT); SharedPreferences pref = getSharedPreferences("musicfx", MODE_PRIVATE); - String defPackage = pref.getString("defaultpanelpackage", null); - String defName = pref.getString("defaultpanelname", null); + String defPackage = pref.getString(Constants.MUSICFX_DEFAULT_PACKAGE_KEY, null); + String defName = pref.getString(Constants.MUSICFX_DEFAULT_PANEL_KEY, null); log("read " + defPackage + "/" + defName + " as default"); if (defPackage == null || defName == null) { Log.e(TAG, "no default set!"); @@ -153,9 +153,9 @@ public class Compatibility { Intent i = new Intent(AudioEffect.ACTION_DISPLAY_AUDIO_EFFECT_CONTROL_PANEL); List<ResolveInfo> ris = mPackageManager.queryIntentActivities(i, PackageManager.GET_DISABLED_COMPONENTS); log("found: " + ris.size()); - SharedPreferences pref = getSharedPreferences("musicfx", MODE_PRIVATE); - String savedDefPackage = pref.getString("defaultpanelpackage", null); - String savedDefName = pref.getString("defaultpanelname", null); + SharedPreferences pref = Constants.getMusicFxPrefs(this); + String savedDefPackage = pref.getString(Constants.MUSICFX_DEFAULT_PACKAGE_KEY, null); + String savedDefName = pref.getString(Constants.MUSICFX_DEFAULT_PANEL_KEY, null); log("saved default: " + savedDefName); for (ResolveInfo foo: ris) { if (foo.activityInfo.name.equals(Compatibility.Redirector.class.getName())) { @@ -210,10 +210,10 @@ public class Compatibility { // Write the selected default to the prefs so that the Redirector activity // knows which one to use. - SharedPreferences pref = getSharedPreferences("musicfx", MODE_PRIVATE); + SharedPreferences pref = Constants.getMusicFxPrefs(this); Editor ed = pref.edit(); - ed.putString("defaultpanelpackage", defPackage); - ed.putString("defaultpanelname", defName); + ed.putString(Constants.MUSICFX_DEFAULT_PACKAGE_KEY, defPackage); + ed.putString(Constants.MUSICFX_DEFAULT_PANEL_KEY, defName); ed.commit(); log("wrote " + defPackage + "/" + defName + " as default"); } diff --git a/src/com/cyngn/audiofx/Constants.java b/src/com/cyngn/audiofx/Constants.java index 77bc730..61d53cc 100644 --- a/src/com/cyngn/audiofx/Constants.java +++ b/src/com/cyngn/audiofx/Constants.java @@ -67,6 +67,15 @@ public class Constants { public static final String EQUALIZER_PRESET = "equalizer.preset."; public static final String EQUALIZER_PRESET_NAMES = "equalizer.preset_names"; + // musicfx constants + public static final String MUSICFX_PREF_NAME = "musicfx"; + public static final String MUSICFX_DEFAULT_PACKAGE_KEY = "defaultpanelpackage"; + public static final String MUSICFX_DEFAULT_PANEL_KEY = "defaultpanelname"; + + public static SharedPreferences getMusicFxPrefs(Context context) { + return context.getSharedPreferences(MUSICFX_PREF_NAME, Context.MODE_PRIVATE); + } + public static SharedPreferences getGlobalPrefs(Context context) { return context.getSharedPreferences(AUDIOFX_GLOBAL_FILE, 0); } diff --git a/src/com/cyngn/audiofx/fragment/AudioFxFragment.java b/src/com/cyngn/audiofx/fragment/AudioFxFragment.java index fe341e7..be8ff93 100644 --- a/src/com/cyngn/audiofx/fragment/AudioFxFragment.java +++ b/src/com/cyngn/audiofx/fragment/AudioFxFragment.java @@ -5,8 +5,12 @@ import android.animation.ArgbEvaluator; import android.animation.ValueAnimator; import android.annotation.Nullable; import android.app.Activity; +import android.app.AlertDialog; import android.app.Fragment; import android.app.FragmentTransaction; +import android.content.DialogInterface; +import android.content.Intent; +import android.content.SharedPreferences; import android.media.AudioDeviceInfo; import android.os.Bundle; import android.os.Handler; @@ -19,7 +23,8 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.CompoundButton; - +import com.cyngn.audiofx.Compatibility; +import com.cyngn.audiofx.Constants; import com.cyngn.audiofx.R; import com.cyngn.audiofx.activity.ActivityMusic; import com.cyngn.audiofx.activity.EqualizerManager; @@ -31,17 +36,6 @@ import com.cyngn.audiofx.widget.InterceptableLinearLayout; import java.util.List; import java.util.Map; -import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_A2DP; -import static android.media.AudioDeviceInfo.TYPE_BLUETOOTH_SCO; -import static android.media.AudioDeviceInfo.TYPE_DOCK; -import static android.media.AudioDeviceInfo.TYPE_IP; -import static android.media.AudioDeviceInfo.TYPE_LINE_ANALOG; -import static android.media.AudioDeviceInfo.TYPE_LINE_DIGITAL; -import static android.media.AudioDeviceInfo.TYPE_USB_ACCESSORY; -import static android.media.AudioDeviceInfo.TYPE_USB_DEVICE; -import static android.media.AudioDeviceInfo.TYPE_WIRED_HEADPHONES; -import static android.media.AudioDeviceInfo.TYPE_WIRED_HEADSET; - public class AudioFxFragment extends Fragment implements ActivityMusic.ActivityStateListener, StateCallbacks.DeviceChangedCallback { @@ -164,8 +158,46 @@ public class AudioFxFragment extends Fragment implements ActivityMusic.ActivityS mCurrentBackgroundColor = !mConfig.isCurrentDeviceEnabled() ? mDisabledColor : mEqManager.getAssociatedPresetColorHex( - mEqManager.getCurrentPresetIndex()); + mEqManager.getCurrentPresetIndex()); updateBackgroundColors(mCurrentBackgroundColor, false); + + promptIfNotDefault(); + } + + private void promptIfNotDefault() { + final String audioFxPackageName = getActivity().getPackageName(); + + final SharedPreferences musicFxPrefs = Constants.getMusicFxPrefs(getActivity()); + final String defaultPackage = musicFxPrefs.getString(Constants.MUSICFX_DEFAULT_PACKAGE_KEY, + audioFxPackageName); + final boolean notDefault = !defaultPackage.equals(audioFxPackageName); + + if (notDefault) { + new AlertDialog.Builder(getActivity()) + .setMessage(R.string.snack_bar_not_default) + .setNegativeButton(R.string.snack_bar_not_default_not_now, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + getActivity().finish(); + } + }) + .setPositiveButton(R.string.snack_bar_not_default_set, + new DialogInterface.OnClickListener() { + @Override + public void onClick(DialogInterface dialog, int which) { + Intent updateIntent = new Intent(getActivity(), + Compatibility.Service.class); + updateIntent.putExtra("defPackage", audioFxPackageName); + updateIntent.putExtra("defName", ActivityMusic.class.getName()); + getActivity().startService(updateIntent); + dialog.dismiss(); + } + }) + .setCancelable(false) + .create() + .show(); + } } @Override @@ -303,7 +335,7 @@ public class AudioFxFragment extends Fragment implements ActivityMusic.ActivityS @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, - Bundle savedInstanceState) { + Bundle savedInstanceState) { if (container == null) { Log.w(TAG, "container is null."); // no longer displaying this fragment @@ -365,7 +397,7 @@ public class AudioFxFragment extends Fragment implements ActivityMusic.ActivityS } public void animateBackgroundColorTo(int colorTo, Animator.AnimatorListener listener, - ColorUpdateListener updateListener) { + ColorUpdateListener updateListener) { if (mColorChangeAnimator != null) { mColorChangeAnimator.cancel(); mColorChangeAnimator = null; |