dentex.youtube.downloader.menu.DonateActivity.java Source code

Java tutorial

Introduction

Here is the source code for dentex.youtube.downloader.menu.DonateActivity.java

Source

/***
Copyright (c) 2012-2013 Samuele Rini
    
   This program is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation, either version 3 of the License, or
   (at your option) any later version.
       
   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
   GNU General Public License for more details.
       
   You should have received a copy of the GNU General Public License
   along with this program. If not, see http://www.gnu.org/licenses
       
   ***
       
   https://github.com/dentex/ytdownloader/
https://sourceforge.net/projects/ytdownloader/
       
   ***
       
   Different Licenses and Credits where noted in code comments.
*/

package dentex.youtube.downloader.menu;

import com.bugsense.trace.BugSenseHandler;

import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.preference.Preference;
import android.preference.Preference.OnPreferenceClickListener;
import android.preference.PreferenceFragment;
import android.preference.PreferenceManager;
import android.support.v4.app.NavUtils;
import android.view.MenuItem;
import android.view.Window;
import dentex.youtube.downloader.R;
import dentex.youtube.downloader.utils.Utils;

public class DonateActivity extends Activity {

    public static final String DEBUG_TAG = "DonateActivity";
    public static String chooserSummary;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        BugSenseHandler.leaveBreadcrumb("DonateActivity_onCreate");
        this.setTitle(R.string.title_activity_donate);

        getWindow().requestFeature(Window.FEATURE_PROGRESS);
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);

        // Theme init
        Utils.themeInit(this);

        // Language init
        Utils.langInit(this);

        // Load default preferences values
        PreferenceManager.setDefaultValues(this, R.xml.donate, false);

        // Display the fragment as the main content.
        getFragmentManager().beginTransaction().replace(android.R.id.content, new DonateFragment()).commit();
        setupActionBar();
    }

    private void setupActionBar() {
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

    @SuppressLint("SetJavaScriptEnabled")
    public static class DonateFragment extends PreferenceFragment /*implements OnSharedPreferenceChangeListener*/ {

        private Preference pp;
        private Preference fl;
        //private WebView webview;

        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            //webview = new WebView(getActivity());
            //webview.getSettings().setJavaScriptEnabled(true);

            addPreferencesFromResource(R.xml.donate);

            /*for(int i=0;i<getPreferenceScreen().getPreferenceCount();i++){
            initSummary(getPreferenceScreen().getPreference(i));
            }*/

            pp = (Preference) findPreference("paypal");
            pp.setOnPreferenceClickListener(new OnPreferenceClickListener() {

                /*
                 * uriBuilder code adapted from:
                 *   https://github.com/dschuermann/ad-away [...] DonationsFragment.java
                 *   
                 *   Licensed under the Apache License, Version 2.0 (the "License");
                 * by:
                 *   Dominik Schrmann <dominik@dominikschuermann.de>
                 *   
                 *   ----------------------------------------------------------------
                 *   
                 * webview code adapted from:
                 *   http://misha.beshkin.lv/android-add-paypal-donation-page-to-app/
                 * by:
                 *   Moishe Beshkin
                 */

                public boolean onPreferenceClick(Preference preference) {
                    Uri.Builder uriBuilder = new Uri.Builder();
                    uriBuilder.scheme("https").authority("www.paypal.com").path("cgi-bin/webscr"); // uncomment this for browser
                    uriBuilder.appendQueryParameter("cmd", "_donations");
                    uriBuilder.appendQueryParameter("business", getString(R.string.paypal_user));
                    uriBuilder.appendQueryParameter("lc", "US");
                    uriBuilder.appendQueryParameter("item_name", getString(R.string.paypal_item_name));
                    uriBuilder.appendQueryParameter("no_note", "1");
                    uriBuilder.appendQueryParameter("no_shipping", "1");
                    uriBuilder.appendQueryParameter("currency_code", getString(R.string.paypal_currency_code));

                    Uri payPalUri = uriBuilder.build();

                    // ================= webview alternative: =======================
                    /*String postText = payPalUri.getQuery();
                    byte[] post = null;
                    post = EncodingUtils.getBytes(postText, "BASE64");
                        
                    final Activity activity = getActivity();
                    webview.setWebChromeClient(new WebChromeClient() {
                       public void onProgressChanged(WebView view, int progress) {
                     activity.setProgress(progress * 100);
                       }
                    });
                    webview.setWebViewClient(new WebViewClient() {  
                        @Override  
                        public boolean shouldOverrideUrlLoading(WebView view, String url) {  
                      view.loadUrl(url);  
                      return true;  
                        }
                        public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
                       if (isAdded()) {
                          Toast.makeText(activity, getString(R.string.error) + description, Toast.LENGTH_SHORT).show();
                       }
                        }
                    });  
                    activity.setContentView(webview);
                        
                    webview.postUrl("https://www.paypal.com/cgi-bin/webscr", post);*/
                    // ==============================================================

                    // choose between ^  or  v

                    // ================= browser alternative: =======================
                    Intent viewIntent = new Intent(Intent.ACTION_VIEW, payPalUri);
                    startActivity(viewIntent);
                    // ==============================================================

                    return true;
                }
            });

            fl = (Preference) findPreference("flattr");
            fl.setOnPreferenceClickListener(new OnPreferenceClickListener() {

                public boolean onPreferenceClick(Preference preference) {

                    Uri.Builder uriBuilder = new Uri.Builder();
                    uriBuilder.scheme("https").authority("flattr.com")
                            .path("thing/1814655/YouTubeDownloader-for-Android");

                    Uri flattrUri = uriBuilder.build();
                    Intent viewIntent = new Intent(Intent.ACTION_VIEW, flattrUri);

                    startActivity(viewIntent);
                    return true;
                }
            });
        }

        /*public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
             updatePrefSummary(findPreference(key));
        }
            
        private void initSummary(Preference p){
             if (p instanceof PreferenceCategory){
          PreferenceCategory pCat = (PreferenceCategory)p;
          for(int i=0;i<pCat.getPreferenceCount();i++){
             initSummary(pCat.getPreference(i));
           }
             }else{
          updatePrefSummary(p);
             }
          }
              
          private void updatePrefSummary(Preference p){
             if (p instanceof ListPreference) {
          ListPreference listPref = (ListPreference) p;
           p.setSummary(listPref.getEntry());
             }
          }*/
    }
}