com.aniruddhc.acemusic.player.WelcomeActivity.GooglePlayMusicFragment.java Source code

Java tutorial

Introduction

Here is the source code for com.aniruddhc.acemusic.player.WelcomeActivity.GooglePlayMusicFragment.java

Source

/*
 * Copyright (C) 2014 Saravan Pantham
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.aniruddhc.acemusic.player.WelcomeActivity;

import android.accounts.Account;
import android.accounts.AccountManager;
import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener;
import android.widget.TextView;

import com.aniruddhc.acemusic.player.R;
import com.aniruddhc.acemusic.player.AsyncTasks.AsyncGoogleMusicAuthenticationTask;
import com.aniruddhc.acemusic.player.Helpers.TypefaceHelper;
import com.aniruddhc.acemusic.player.Utils.Common;

public class GooglePlayMusicFragment extends Fragment {

    private Context mContext;
    private Common mApp;

    private Account account;
    private RadioGroup radioGroup;
    private TextView welcomeHeader;
    private TextView welcomeText1;
    private TextView googlePlayMusicDisclaimer;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        mContext = getActivity().getApplicationContext();
        mApp = (Common) mContext;
        View rootView = (View) inflater.inflate(R.layout.fragment_welcome_screen_5, null);

        welcomeHeader = (TextView) rootView.findViewById(R.id.welcome_header);
        welcomeHeader.setTypeface(TypefaceHelper.getTypeface(getActivity(), "Roboto-Light"));

        welcomeText1 = (TextView) rootView.findViewById(R.id.welcome_text_1);
        welcomeText1.setTypeface(TypefaceHelper.getTypeface(getActivity(), "Roboto-Regular"));

        googlePlayMusicDisclaimer = (TextView) rootView.findViewById(R.id.google_play_music_disclaimer);
        googlePlayMusicDisclaimer.setTypeface(TypefaceHelper.getTypeface(getActivity(), "Roboto-Regular"));

        radioGroup = (RadioGroup) rootView.findViewById(R.id.google_play_music_radio_group);

        final AccountManager accountManager = AccountManager.get(getActivity().getApplicationContext());
        final Account[] accounts = accountManager.getAccountsByType("com.google");
        final int size = accounts.length + 1; //We're adding 1 here to account (no pun intended) for the extra "Don't use Google Play Music" option.

        final RadioButton[] radioButton = new RadioButton[size];

        //Add a new radio button the group for each username.
        for (int i = 0; i < size; i++) {
            radioButton[i] = new RadioButton(getActivity());
            radioGroup.addView(radioButton[i]);

            //The first radio button will always be "Don't use Google Play Music".
            if (i == 0) {
                radioButton[i].setChecked(true);
                radioButton[i].setText(R.string.dont_use_google_play_music);
            } else {
                radioButton[i].setText(accounts[i - 1].name);
            }

            radioButton[i].setTag(i);
            radioButton[i].setTypeface(TypefaceHelper.getTypeface(mContext, "Roboto-Regular"));

        }

        radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {

                int radioButtonID = group.getCheckedRadioButtonId();
                View radioButton = group.findViewById(radioButtonID);
                int index = group.indexOfChild(radioButton);

                if (index != 0) {

                    account = accounts[index - 1];
                    mApp.getSharedPreferences().edit().putString("GOOGLE_PLAY_MUSIC_ACCOUNT", account.name)
                            .commit();

                    AsyncGoogleMusicAuthenticationTask task = new AsyncGoogleMusicAuthenticationTask(mContext,
                            getActivity(), true, account.name);

                    task.execute();
                } else {
                    mApp.getSharedPreferences().edit().putString("GOOGLE_PLAY_MUSIC_ACCOUNT", "").commit();
                    mApp.getSharedPreferences().edit().putBoolean("GOOGLE_PLAY_MUSIC_ENABLED", false).commit();
                }

            }

        });

        return rootView;
    }

}