com.autburst.picture.FinishedUploadActivity.java Source code

Java tutorial

Introduction

Here is the source code for com.autburst.picture.FinishedUploadActivity.java

Source

/*
ApicAday - Everyday.. is different, your mood, your life. 
Copyright (c) 2010 
   Oliver Selinger <oliver.selinger@autburst.com>,
   Michael Greifeneder <michael.greifeneder@autburst.com> 
     
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/>.
*/
package com.autburst.picture;

import java.net.URLEncoder;

import org.apache.commons.codec.binary.Base64;

import android.app.Activity;
import android.app.NotificationManager;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

import com.autburst.picture.facebook.FacebookActivity;

public class FinishedUploadActivity extends Activity {

    public static final String UPLOAD_FINISHED = "com.autburst.picture.UPLOAD_FINISHED";
    private static final String TAG = FinishedUploadActivity.class.getName();

    private ImageButton previewButton;
    private ImageButton facebookButton;
    private ImageButton sendButton;
    private String albumName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.finished);

        albumName = getIntent().getStringExtra(UploadService.ALBUM_NAME);

        setButtons();

        //Toast.makeText(this, "FinishedUploadActivity called for "  + albumName, Toast.LENGTH_LONG);
        Log.d(TAG, "FinishedUploadActivity called for " + albumName);

        NotificationManager mgr = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
        mgr.cancel(albumName, Uploader.NOTE_ID);

    }

    private void setButtons() {
        previewButton = (ImageButton) findViewById(R.id.finishedPreview);
        previewButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View arg0) {
                showDemoVideo();
            }
        });
        facebookButton = (ImageButton) findViewById(R.id.finishedFacebook);
        facebookButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                postToFacebook();
            }
        });
        sendButton = (ImageButton) findViewById(R.id.finishedSend);
        sendButton.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                sendLink();

            }
        });
    }

    private void showDemoVideo() {
        //Preview Video
        Intent intent = new Intent(this, VideoDemoActivity.class);
        intent.putExtra("albumName", albumName);
        startActivity(intent);
    }

    private void postToFacebook() {
        String videoUrl = createVideoUrl();
        if (videoUrl == null) {
            return;
        }
        Log.d(TAG, "videoUrl for FB: " + videoUrl);

        videoUrl = URLEncoder.encode(videoUrl);
        Intent intent = new Intent(this, FacebookActivity.class);

        Resources res = getResources();
        intent.putExtra("application_id", "126691144034061");
        intent.putExtra("message", String.format(res.getString(R.string.fb_message),
                new String(Base64.decodeBase64(albumName.getBytes()))));
        intent.putExtra("link", videoUrl);
        intent.putExtra("name", "ApicAday");
        intent.putExtra("caption", res.getString(R.string.fb_caption));
        intent.putExtra("description", "");
        intent.putExtra("picture", "http://server.autburst.com/ApicAday/facebook_image_finish.png");
        startActivity(intent);
    }

    /**
     * Returns video URL or null if no valid URL available
     * @return 
     */
    private String createVideoUrl() {
        String savedVideoId = getSharedPreferences(Utilities.PIC_STORE, 0).getString(albumName + ".videoId", null);
        if (savedVideoId == null) {
            Toast.makeText(this, R.string.invalid_video_url, Toast.LENGTH_SHORT).show();
            return null;
        } else {
            boolean isPortrait = getSharedPreferences(Utilities.PIC_STORE, 0).getBoolean(albumName + ".portrait",
                    true);
            String videoUrl = "http://server.autburst.com/ApicAday/" + (isPortrait ? "portrait" : "landscape")
                    + ".html?videoId=" + savedVideoId + "&album=" + albumName;
            return videoUrl;
        }
    }

    private void sendLink() {
        String url = createVideoUrl();
        if (url == null) {
            return;
        }
        Intent i = new Intent(Intent.ACTION_SEND);
        i.setType("text/plain");
        Resources res = getResources();
        i.putExtra(Intent.EXTRA_SUBJECT, res.getString(R.string.downloadlink));
        i.putExtra(Intent.EXTRA_TEXT, url);
        startActivity(Intent.createChooser(i, res.getString(R.string.sendlink)));
    }

}