~pjv/collectionista/sheetmusic

« back to all changes in this revision

Viewing changes to src/net/lp/collectionista/ui/actions/ShowPdfUiAction.java

Merged in the big side project of ICS (and ActionBarPoirot): make Collectionista work on ICS and up, the big update to 4.x.

Show diffs side-by-side

added added

removed removed

Lines of Context:
3
3
 */
4
4
package net.lp.collectionista.ui.actions;
5
5
 
6
 
import net.lp.collectionista.R;
 
6
import net.lp.actionbarpoirot.PoirotWindow;
 
7
import net.lp.actionbarpoirot.actions.UiAction;
 
8
import net.lp.actionbarpoirot.actions.UiActionManager;
 
9
import net.lp.actionbarpoirot.helpers.ActivityHelper.ActivityHelperUser;
 
10
import net.lp.actionbarpoirot.util.UiUtilities;
7
11
import net.lp.collectionista.domain.items.sheet.music.MusicSheetItem;
 
12
import net.lp.collectionista.ext.sheet_music.R;
8
13
import net.lp.collectionista.ui.Collectionista;
9
 
import net.lp.collectionista.ui.CollectionistaWindow;
10
 
import net.lp.collectionista.ui.activities.RegularEditWindow;
 
14
import net.lp.collectionista.ui.activities.phones.RegularEditInterface;
11
15
import net.lp.collectionista.util.AnalyticsUtils;
12
 
import android.app.Activity;
 
16
import proguard.annotation.KeepName;
13
17
import android.content.Intent;
14
18
import android.net.Uri;
 
19
import android.support.v4.app.FragmentActivity;
15
20
import android.view.KeyEvent;
16
21
import android.view.Menu;
17
22
import android.view.MenuItem;
22
27
 * @author pjv
23
28
 *
24
29
 */
25
 
public class ShowPdfUIAction<C extends Activity & CollectionistaWindow> extends UIAction<C> {
 
30
@KeepName
 
31
public class ShowPdfUiAction<C extends FragmentActivity & PoirotWindow & ActivityHelperUser> extends UiAction<C> {
26
32
        
27
33
        /**
28
34
         * @param clientClassName
29
35
         */
30
 
        public ShowPdfUIAction(String clientClassName) {
 
36
        public ShowPdfUiAction(String clientClassName) {
31
37
                super(clientClassName);
32
38
        }
33
39
 
34
40
        /* (non-Javadoc)
35
 
         * @see net.lp.collectionista.ui.actions.UIAction#execute(android.app.Activity)
 
41
         * @see net.lp.collectionista.ui.actions.UiAction#execute(android.app.Activity)
36
42
         */
37
43
        @Override
38
44
        public void execute(C context) {
 
45
        // Request progress bar
 
46
        context.setProgressBarIndeterminateVisibility(true);
 
47
        
39
48
                // Send out the view PDF (and download PDF) intent with a chooser
40
 
                context.startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, Uri.parse(((MusicSheetItem)((RegularEditWindow)context).getProduct()).getPDFUrl())), Collectionista.getAppCtxt().getString(R.string.chooser_show_download_pdf_action)));
 
49
                context.startActivity(Intent.createChooser(new Intent(Intent.ACTION_VIEW, Uri.parse(((MusicSheetItem)((RegularEditInterface)context).getProduct()).getPDFUrl())), Collectionista.getAppCtxt().getString(R.string.chooser_show_download_pdf_action)));
41
50
        }
42
51
 
43
52
        /* (non-Javadoc)
44
 
         * @see net.lp.collectionista.ui.actions.UIAction#getActionBarIcon()
 
53
         * @see net.lp.collectionista.ui.actions.UiAction#getActionBarIcon()
45
54
         */
46
55
        @Override
47
56
        protected int getActionBarIcon() {
49
58
        }
50
59
 
51
60
        /* (non-Javadoc)
52
 
         * @see net.lp.collectionista.ui.actions.UIAction#isAppropriate()
 
61
         * @see net.lp.collectionista.ui.actions.UiAction#isAppropriate()
53
62
         */
54
63
        @Override
55
 
        public boolean isAppropriate() {
 
64
        public boolean isAppropriate(UiActionManager<C> uiActionManager) {
56
65
                return true;
57
66
        }
58
67
 
59
68
        /* (non-Javadoc)
60
 
         * @see net.lp.collectionista.ui.actions.UIAction#onActivityResult(int, int, android.content.Intent, android.app.Activity)
 
69
         * @see net.lp.collectionista.ui.actions.UiAction#onActivityResult(int, int, android.content.Intent, android.app.Activity)
61
70
         */
62
71
        @Override
63
72
        public void onActivityResult(int requestCode, int resultCode, Intent data,
66
75
        }
67
76
 
68
77
        /* (non-Javadoc)
69
 
         * @see net.lp.collectionista.ui.actions.UIAction#onCreateOptionsMenu(android.view.Menu, android.app.Activity)
 
78
         * @see net.lp.collectionista.ui.actions.UiAction#onCreateOptionsMenu(android.view.Menu, android.app.Activity)
70
79
         */
71
80
        @Override
72
 
        public void onCreateOptionsMenu(Menu menu, C context) {
73
 
                menu.add(Menu.NONE, menuItemAndRequestCodeId, ORDER_THIRD, R.string.menu_show_download_pdf).setIcon(Collectionista.getAppCtxt().getResources().getDrawable(android.R.drawable.ic_menu_view).mutate());
 
81
        public MenuItem onCreateOptionsMenu(Menu menu, C context) {
 
82
                final MenuItem menuItem = menu.add(Menu.NONE, menuItemAndRequestCodeId, ORDER_FIFTH_OR_EXTRA, R.string.menu_show_download_pdf);
 
83
                menuItem.setIcon(Collectionista.getAppCtxt().getResources().getDrawable(android.R.drawable.ic_menu_view).mutate());
 
84
                
 
85
                if (UiUtilities.hasAcceptableNativeActionBar()) {
 
86
                        onCreateOptionsMenuMoreNative(menuItem, context);
 
87
                }
 
88
                
 
89
                return menuItem;
74
90
        }
75
91
 
76
92
        /* (non-Javadoc)
77
 
         * @see net.lp.collectionista.ui.actions.UIAction#onKeyUp(int, android.view.KeyEvent, android.app.Activity)
 
93
         * @see net.lp.collectionista.ui.actions.UiAction#onKeyUp(int, android.view.KeyEvent, android.app.Activity)
78
94
         */
79
95
        @Override
80
96
        public boolean onKeyUp(int keyCode, KeyEvent event, C context) {
82
98
        }
83
99
 
84
100
        /* (non-Javadoc)
85
 
         * @see net.lp.collectionista.ui.actions.UIAction#onOptionsItemSelected(android.view.MenuItem, android.app.Activity)
 
101
         * @see net.lp.collectionista.ui.actions.UiAction#onOptionsItemSelected(android.view.MenuItem, android.app.Activity)
86
102
         */
87
103
        @Override
88
104
        public boolean onOptionsItemSelected(MenuItem item, C context) {
89
105
                if (item.getItemId() == menuItemAndRequestCodeId) {
90
106
                if (!Collectionista.DEBUG) FlurryAgent.onEvent("show_download_pdf");
91
 
                        AnalyticsUtils.getInstance().trackGAEvent("SheetMusicItem", "ShowDownloadPDF", clientClassName+".Menu_"+Collectionista.getAppCtxt().getString(R.string.menu_show_download_pdf), 0);
 
107
                        AnalyticsUtils.getInstance().trackGAEvent("SheetMusicItem", "ShowDownloadPDF", clientReference+".Menu_"+Collectionista.getAppCtxt().getString(R.string.menu_show_download_pdf), 0);
92
108
                        
93
109
                        execute(context);
94
110
                        return true;
97
113
        }
98
114
 
99
115
        /* (non-Javadoc)
100
 
         * @see net.lp.collectionista.ui.actions.UIAction#onPrepareOptionsMenu(android.view.Menu, android.app.Activity)
 
116
         * @see net.lp.collectionista.ui.actions.UiAction#onPrepareOptionsMenu(android.view.Menu, android.app.Activity)
101
117
         */
102
118
        @Override
103
119
        public void onPrepareOptionsMenu(Menu menu, C context) {