diff options
Diffstat (limited to 'src/org/fox/ttrss/MainActivity.java')
| -rw-r--r-- | src/org/fox/ttrss/MainActivity.java | 55 |
1 files changed, 50 insertions, 5 deletions
diff --git a/src/org/fox/ttrss/MainActivity.java b/src/org/fox/ttrss/MainActivity.java index dd3295c8..5d7ecd09 100644 --- a/src/org/fox/ttrss/MainActivity.java +++ b/src/org/fox/ttrss/MainActivity.java @@ -23,6 +23,7 @@ import android.database.sqlite.SQLiteDatabase; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; +import android.os.Handler; import android.preference.PreferenceManager; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; @@ -69,6 +70,7 @@ public class MainActivity extends FragmentActivity implements OnlineServices { private boolean m_isLoggingIn = false; private boolean m_isOffline = false; private boolean m_offlineModeReady = false; + private int m_selectedProduct = -1; private SQLiteDatabase m_readableDb; private SQLiteDatabase m_writableDb; @@ -443,7 +445,7 @@ public class MainActivity extends FragmentActivity implements OnlineServices { } super.onCreate(savedInstanceState); - + m_themeName = m_prefs.getString("theme", "THEME_DARK"); if (savedInstanceState != null) { @@ -882,6 +884,45 @@ public class MainActivity extends FragmentActivity implements OnlineServices { .findFragmentById(R.id.headlines_fragment); switch (item.getItemId()) { + case R.id.donate: + if (true) { + CharSequence[] items = { "Silver Donation ($2)", "Gold Donation ($5)", "Platinum Donation ($10)" }; + + Dialog dialog = new Dialog(MainActivity.this); + AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this) + .setTitle(R.string.donate_select) + .setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + m_selectedProduct = which; + } + }).setNegativeButton(R.string.dialog_close, new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + dialog.cancel(); + } + }).setPositiveButton(R.string.donate_do, new OnClickListener() { + + @Override + public void onClick(DialogInterface dialog, int which) { + if (m_selectedProduct != -1 && m_selectedProduct < 3) { + CharSequence[] products = { "donation_silver", "donation_gold", "donation_platinum2" }; + + Log.d(TAG, "Selected product: " + products[m_selectedProduct]); + + BillingHelper.requestPurchase(MainActivity.this, (String) products[m_selectedProduct]); + + dialog.dismiss(); + } + } + }); + + dialog = builder.create(); + dialog.show(); + } + return true; case android.R.id.home: goBack(false); return true; @@ -1130,7 +1171,7 @@ public class MainActivity extends FragmentActivity implements OnlineServices { Dialog dialog = new Dialog(MainActivity.this); AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this) - .setTitle("Set labels") + .setTitle(R.string.article_set_labels) .setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() { @Override @@ -1152,7 +1193,7 @@ public class MainActivity extends FragmentActivity implements OnlineServices { req.execute(map); } - }).setPositiveButton("Close", new OnClickListener() { + }).setPositiveButton(R.string.dialog_close, new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { @@ -1358,7 +1399,9 @@ public class MainActivity extends FragmentActivity implements OnlineServices { } m_menu.findItem(R.id.set_labels).setEnabled(m_apiLevel >= 1); - + + m_menu.findItem(R.id.donate).setVisible(BillingHelper.isBillingSupported()); + } else { m_menu.setGroupVisible(R.id.menu_group_logged_in, false); m_menu.setGroupVisible(R.id.menu_group_logged_out, true); @@ -1410,8 +1453,10 @@ public class MainActivity extends FragmentActivity implements OnlineServices { m_isOffline = false; + startService(new Intent(MainActivity.this, BillingService.class)); + initMainMenu(); - + if (m_refreshTask != null) { m_refreshTask.cancel(); m_refreshTask = null; |