com.mycelium.wallet.activity.main.AdFragment.java Source code

Java tutorial

Introduction

Here is the source code for com.mycelium.wallet.activity.main.AdFragment.java

Source

/*
 * Copyright 2013, 2014 Megion Research and Development GmbH
 *
 * Licensed under the Microsoft Reference Source License (MS-RSL)
 *
 * This license governs use of the accompanying software. If you use the software, you accept this license.
 * If you do not accept the license, do not use the software.
 *
 * 1. Definitions
 * The terms "reproduce," "reproduction," and "distribution" have the same meaning here as under U.S. copyright law.
 * "You" means the licensee of the software.
 * "Your company" means the company you worked for when you downloaded the software.
 * "Reference use" means use of the software within your company as a reference, in read only form, for the sole purposes
 * of debugging your products, maintaining your products, or enhancing the interoperability of your products with the
 * software, and specifically excludes the right to distribute the software outside of your company.
 * "Licensed patents" means any Licensor patent claims which read directly on the software as distributed by the Licensor
 * under this license.
 *
 * 2. Grant of Rights
 * (A) Copyright Grant- Subject to the terms of this license, the Licensor grants you a non-transferable, non-exclusive,
 * worldwide, royalty-free copyright license to reproduce the software for reference use.
 * (B) Patent Grant- Subject to the terms of this license, the Licensor grants you a non-transferable, non-exclusive,
 * worldwide, royalty-free patent license under licensed patents for reference use.
 *
 * 3. Limitations
 * (A) No Trademark License- This license does not grant you any rights to use the Licensors name, logo, or trademarks.
 * (B) If you begin patent litigation against the Licensor over patents that you think may apply to the software
 * (including a cross-claim or counterclaim in a lawsuit), your license to the software ends automatically.
 * (C) The software is licensed "as-is." You bear the risk of using it. The Licensor gives no express warranties,
 * guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot
 * change. To the extent permitted under your local laws, the Licensor excludes the implied warranties of merchantability,
 * fitness for a particular purpose and non-infringement.
 */

package com.mycelium.wallet.activity.main;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.text.method.LinkMovementMethod;
import android.widget.Button;

import com.google.common.base.Preconditions;
import com.mycelium.wallet.R;

public class AdFragment extends Fragment {
    private Button btAdvice;
    private CharSequence adBuy;
    private CharSequence adUrl;
    private CharSequence adInfo;
    private int adIcon;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = Preconditions.checkNotNull(inflater.inflate(R.layout.main_ad_fragment, container, false));
        btAdvice = (Button) root.findViewById(R.id.btAdvice);
        updateAdContent();
        btAdvice.setMovementMethod(LinkMovementMethod.getInstance());
        return root;
    }

    private void updateAdContent() {
        double dice = Math.random();
        if (dice < 0.3334) {
            adIcon = R.drawable.purse_small;
            adBuy = getText(R.string.ad_buy_purse);
            adUrl = getText(R.string.ad_purse_url);
            adInfo = getText(R.string.ad_purse_info);
        } else if (dice < 0.6667) {
            adIcon = R.drawable.trezor2;
            adBuy = getText(R.string.ad_buy_trezor);
            adUrl = getText(R.string.ad_trezor_url);
            adInfo = getText(R.string.ad_trezor_info);
        } else {
            adIcon = R.drawable.hashing24;
            adBuy = getText(R.string.ad_buy_hashing24);
            adUrl = getText(R.string.ad_hashing24_url);
            adInfo = getText(R.string.ad_hashing24_info);
        }
        btAdvice.setCompoundDrawablesWithIntrinsicBounds(adIcon, 0, 0, 0);
        btAdvice.setText(adBuy);
        btAdvice.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View view) {
                if (adInfo != null && adInfo.length() > 0) {
                    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
                    builder.setMessage(adInfo);
                    builder.setTitle(R.string.warning_partner);
                    builder.setIcon(adIcon);
                    builder.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            if (adUrl != null) {
                                Intent intent = new Intent(Intent.ACTION_VIEW);
                                intent.setData(Uri.parse(adUrl.toString()));
                                startActivity(intent);
                            }
                        }
                    });
                    builder.setNegativeButton(R.string.cancel, null);
                    AlertDialog dialog = builder.create();
                    dialog.show();
                } else {
                    if (adUrl != null) {
                        Intent i = new Intent(Intent.ACTION_VIEW);
                        i.setData(Uri.parse(adUrl.toString()));
                        startActivity(i);
                    }
                }
            }
        });
    }

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

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }

    @Override
    public void onResume() {
        updateAdContent();
        super.onResume();
    }
}