package com.simplecity.amp_library.ui.activities; import android.annotation.SuppressLint; import android.content.Intent; import android.content.SharedPreferences; import android.os.Bundle; import android.preference.PreferenceManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.widget.Toolbar; import android.util.Log; import android.view.MenuItem; import android.view.WindowManager; import android.widget.Toast; import com.android.vending.billing.utils.IabHelper; import com.android.vending.billing.utils.IabResult; import com.android.vending.billing.utils.Purchase; import com.readystatesoftware.systembartint.SystemBarTintManager; import com.simplecity.amp_library.IabManager; import com.simplecity.amp_library.R; import com.simplecity.amp_library.ShuttleApplication; import com.simplecity.amp_library.constants.Config; import com.simplecity.amp_library.ui.fragments.SettingsFragment; import com.simplecity.amp_library.utils.ColorUtils; import com.simplecity.amp_library.utils.DialogUtils; import com.simplecity.amp_library.utils.SettingsManager; import com.simplecity.amp_library.utils.ShuttleUtils; import com.simplecity.amp_library.utils.ThemeUtils; import static android.view.WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS; public class SettingsActivity extends BaseActivity { private static final String TAG = "SettingsActivity"; public static final String EXTRA_SUPPORT = "support"; private SystemBarTintManager mTintManager; SharedPreferences mPrefs; // (arbitrary) request code for the purchase flow static final int RC_REQUEST = 10001; @SuppressLint("InlinedApi") @Override protected void onCreate(Bundle savedInstanceState) { if (!ShuttleUtils.isUpgraded() && !ShuttleUtils.isAmazonBuild()) { IabManager.getInstance(); } ThemeUtils.setTheme(this); mPrefs = PreferenceManager.getDefaultSharedPreferences(this); if (!ShuttleUtils.hasLollipop() && ShuttleUtils.hasKitKat()) { getWindow().setFlags(FLAG_TRANSLUCENT_STATUS, FLAG_TRANSLUCENT_STATUS); mTintManager = new SystemBarTintManager(this); } if (!ShuttleUtils.hasKitKat()) { getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); } if (SettingsManager.getInstance().canTintNavBar()) { getWindow().setNavigationBarColor(ColorUtils.getPrimaryColorDark(this)); } super.onCreate(savedInstanceState); setContentView(R.layout.activity_settings); setSupportActionBar((Toolbar) findViewById(R.id.toolbar)); getSupportActionBar().setDisplayHomeAsUpEnabled(true); ThemeUtils.themeActionBar(this); ThemeUtils.themeStatusBar(this, mTintManager); if (savedInstanceState == null) { if (!getIntent().getBooleanExtra(EXTRA_SUPPORT, false)) { getSupportActionBar().setTitle(getString(R.string.settings)); getSupportFragmentManager().beginTransaction().replace(R.id.main_container, new SettingsFragment()).commit(); } else { getSupportActionBar().setTitle(getString(R.string.pref_title_support)); getSupportFragmentManager().beginTransaction().replace(R.id.main_container, SettingsFragment.newInstance(R.xml.settings_support)).commit(); } } } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case android.R.id.home: { if (getSupportFragmentManager().getBackStackEntryCount() != 0) { getSupportFragmentManager().popBackStackImmediate(); } else { finish(); } return true; } } return false; } public void swapSettingsFragment(int preferenceResId) { final FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); ft.replace(R.id.main_container, SettingsFragment.newInstance(preferenceResId)); ft.addToBackStack(null); ft.commit(); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (IabManager.getInstance().iabHelper == null) return; if (!IabManager.getInstance().iabHelper.handleActivityResult(requestCode, resultCode, data)) { super.onActivityResult(requestCode, resultCode, data); } } private IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() { public void onIabPurchaseFinished(IabResult result, Purchase purchase) { // if we were disposed of in the meantime, quit. if (IabManager.getInstance().iabHelper == null) return; if (result.isFailure()) { Log.e(TAG, "Error purchasing: " + result); return; } String sku = purchase.getSku(); if (sku.equals(Config.SKU_PREMIUM)) { mPrefs.edit().putBoolean("pref_theme_gold", true).apply(); ShuttleApplication.getInstance().setIsUpgraded(true); DialogUtils.showUpgradeThankyouDialog(SettingsActivity.this); } } }; public void purchasePremiumUpgrade() { try { IabManager.getInstance().iabHelper.launchPurchaseFlow(this, Config.SKU_PREMIUM, RC_REQUEST, mPurchaseFinishedListener, ""); } catch (IllegalStateException ignored) { Toast.makeText(this, R.string.iab_purchase_failed, Toast.LENGTH_SHORT).show(); } } public void restorePurchases() { IabManager.getInstance().restorePurchases(); } @Override protected String screenName() { return TAG; } }