Buzztouch drawable folder

Source Code > res > drawable folder

The Buzztouch v2.0 Source Code when downloaded contain 44 images in the drawable folder.

There are 4 bt_bg_ images:

bt_bg_error.png image

bt_bg_progress.png

bt_bg_refresh.png

bt_bg_title.png

bt_chevron_arrow.png

bt_no_icon.png image

bt_no_image.png image

There are 24 Right Nav Bar images:

Home: bt_house.png ?

Next: bt_next.png

Info Light: bt_info_light.png

Info Dark: bt_info_dark.png

Details: bt_chevron_details.png

Done: bt_.png

Cancel: bt_.png

Save: bt_.png ?

Add: bt_add.png

AddBlue: bt_.png

Compose: bt_compose.png

Reply: bt_reply.png

Action: bt_action.png

Organize: bt_.png

Bookmark: bt_ bookmark.png

Search: bt_search.png

Refresh: bt_refresh.png

Camera: bt_camera.png

Trash: bt_trash.png

Play: bt_play.png

Pause: bt_pause.png

Stop: bt_stop.png

Rewind: bt_rewind.png

Fast Forward: bt_fastforward.png image

Note: Some of the above icons are used in locations besides the Right Nav Bars.

Two dot images:

dot_green.png image

dot_red.png image

The app’s icon: icon.png

There are 7 images related to maps.
map_marker.png image

map_marker_blue.png image

map_marker_green.png image

map_marker_purple.png image

map_marker_red.png image

map_marker_white.png image

map_youarehere.png image

There are 4 .Doc icons:

screen_exceldoc.png image

screen_pdfdoc.png image

screen_pptdoc.png image

screen_worddoc.png image

* * * End of drawable folder Section * * *

Buzztouch & Google Maps (Android)

Buzztouch & Google Maps API Key: Keytool + Enabling “Get Driving Directions”

Additional Articles

PART ONE: Create Map Screen in Buzztouch

  • Create a map in Buzztouch using the Location Map Screen.
  • Enter a location
  • Submit the location
  • Download Source code (If you haven’t already done so.)
  • (Skip if you already have a Keystore & Release Key. If not get one. This How-To is for use with the Release Key, so if you haven’t exported your app do that now. Why? Because I’m the process of doing so, you’ll create a release key you’ll need in just a bit.
  • Warning: Using the Debug key only creates problems and will PREVENT the map from working. So, DON'T USE IT! (OK, Use Debug Key as appropriate, but NOT WITH THESE INSTRUCTIONS. Glad we cleared that up.)

PART TWO: Install Eclipse KeyTool.

  • Open Eclipse
  • Go to Help > Install New Software.
  • Now enter the following URL into the textbox:

http://keytool.sourceforge.net/update

  • Wait until the word “Keytool” appears under the “Name” table then click on the check box before it.
  • Then click on “Next” and continue clicking on Next until you’re finished with the installation. You will know that the installation is complete because you’ll find a new tab in the Eclipse Menu bar called “Keytool“.

PART THREE: Obtaining & using the Google Maps API Key.

  • Obtain your Release Certificate’s MD5 Fingerprint using the Keytool in Eclipse.

Steps To Obtain the MD5 Fingerprint:

Click on KeyTool

Click on Open Keystore

Browse to the Keystore you wish to use, and double click

Enter password

The KeyStore will appear and ckick on the indicator just to the left of the Keystore

A lock will appear, double ckick on it.

  • You need a Google Account to get a Maps API key, and your API key will be connected to your Google Account.
  • Sign Up for the Android Maps API Key.
  • A single Maps API key is valid for all applications signed by a single certificate
  • You can get different Maps API Keys for different certificates.
  • Read and agree with the terms and conditions Android Maps APIs Terms of Service.
  • Enter your Release certificate’s MD5 fingerprint: 00:35:C2:48:65:41:CG:55:41:11:17:F1:4C :11:82:C5
  • Click on the Generate API Key
  • Result: 0Dfgh96574gffd655Cp6QbltMARFH
  • Copy and paste the Key in the strings.xml file.
  • BTv1.4, BTv1.5 & BTv2.0? This file is located as follows:

Source Code files >res folder > values folder > strings.xml file

  • In the strings file you’ll find:

<string name=“googleMapsAPIKeyRelease”>
yourGoogleMapsKeyForRelease</string>

  • Copy and paste your Maps API Key in the black text seen above.
  • The result will look as follows:

<string name=“googleMapsAPIKeyRelease”>
0Dfgh96574gffd655Cp6Qblt</string>

  • Save and close the file. (Hint: Want to use Facebook for BTv1.4 take a look around before you close. Yes, it’s that easy.)

PART IV: Additional Modifications

  • Be sure the AndroidManifest.xml debuggable setting is set to “false“.
  • In the AndroidManifest.xml uncomment the maps code (may be optional for BTv1.5, I didn’t need to do this, so I recommend you skip this step for BTv1.5)

For BTv1.4 line 68 – 72

In the AndroidManifest.xml (in the root of the project), uncomment the Google map library information by removing the <!– and the –> near the very end of AndroidManifest.xml file, all the way at the bottom, it looks like this:

BEFORE:      <!–

       <uses-library android:name=”com.google.android.maps” />

       <activity android:name=”.Screen_LocationMap” android:label=”@string/app_name” android:screenOrientation=”sensor”></activity>

        –>

  • AFTER:  IF GOOGLE MAPS ARE USED, UNCOMMENT THIS AND SEE THE INSTRUCTIONS IN THE README.txt FILE

           <uses-library android:name=”com.google.android.maps” />

           <activity android:name=”.Screen_LocationMap” android:label=”@string/app_name” android:screenOrientation=”sensor”></activity>

BTv1.4 ONLY: (THIS NEEDS TO BE STUDIED, DON’T DO THIS) In the Act_ActivityBase.java file, inside the src/yourProjectName folder, in the ShowLocationMap() function, uncomment the warning and the function call. It looks like this (lines 289 – 292 it’s about half way down the file)

  • BEFORE: //showLocationMap

public void showLocationMap(){

/*

Intent theIntent = new Intent(this, Screen_LocationMap.class);

        startActivity(theIntent);

        */

showAlert(“Maps Not Configuredr“, “Maps not configured properley. See: showLocationMap() method in src/Act_ActivityBase.java”);

}

Remove the /* and the */ and the “showAlert” warning.

  • AFTER: Intent theIntent =new Intent(this, Screen_LocationMap.class);

            startActivity(theIntent);

  • * * *END OF BTv1.4 Only Section * * *

  • Modify the following file from Debug to Release:
  • Source Code> res> layout>screen_locationmaps.xml
  • From: apiKey=@string/googleMapsAPIKeyDebug
  • To:    apiKey=@string/googleMapsAPIKeyRelease
  • (Optional) In Act_ActivityBase.java uncomment the ShowLocationMap() code and removed the warning (may be optional, didn’t need to do this, so I recommend you skip this step.)
  • Reminder: Prior to Uploading to Android Market, modify the manifest.xml
  • Increase the VersionCode by 1
  • example from 3 to 4
  • and
  • increased the VersionName by one
  • example from 1.7 to 1.8 .
  • (Optional) Reset the Core properties in the Buzztouch Control panel to turn on the GPS on launch of the App. (You must enable this if you wish for the app to use the GPS.)

Enable “Get Driving Directions” (Optional):

  • Modify one line (#593) in the BT_screen_map.java file.
  • App’s Source Code > src > com.yourappsname > BT_screen_map.java
  • Line 593 prior to modificaton:

Uri uri = Uri.parse(“http://maps.google.com/maps?saddr=”; + tmpLatitude + “,” + tmpLongitude + “&daddr=”+ tmpLatitude + “,” + tmpLongitude +);

  • Line 593 after Modification:

Uri uri = Uri.parse(“http://maps.google.com/maps?saddr=”; + tmpLatitude + “,” + tmpLongitude + “&daddr=”+ tappedLocation.getLatitude() + “,” + tappedLocation.getLongitude());

  • Tip: Double-click the java file to open it in Eclipse. Then right-click on the left edge of the view screen where the files opens and a pop-up menu let you turn on-line numbers.
  • Export the Apk to Android Market and/or installed on your device.
  • Test, Test and TEST some more to make sure everything went according to plan.

Show User Current Location:

  • The follow is mostly unedited from Zakamo’s post (see orignal below)
  • Add this code:
  • me=new MyLocationOverlay(this, mapView);
  • mapView.getOverlays().add(me);
  • me.enableMyLocation();
  • to the if statement area here: // add device location if we have it and showUserLocation != “0” By adding it to the if statement, we should allow for enabling from console.
  • I nuked all of the user location stuff so the phone won’t come up.
  • It should be noted that you are stuck with the blue dot.
  • No custom stuff, but this is a bit cleaner in my opinion.
  • It appears like 2.0 and 1.5 it will be the same.
  • BT_screen_map.java Search for the comment above but looks like to be around line 745ish.
    We need to add some declarations, sorry I forgot that. Go to where all the variables are being called at the top,
  • and add private MyLocationOverlay me=null;
  • Also you want to add the original code after the if statement opens.
  • So like this. //add device location if we have it and showUserLocation != “0” if(tmpLatitude.length() > 4 && !showUserLocation.equalsIgnoreCase(“0”)){ me=new MyLocationOverlay(this, mapView); mapView.getOverlays().add(me); me.enableMyLocation();
    If for some reason it doesn’t work, change tmpLatitude.length() > 4 to tmpLatitude.length() > 0

Additional Readings:

Just in Case: The MD5 Fingerprint and API Key used in this post are not functional and are merely for illustration, and using these will not work. 😉

Using JSON data to create map locations:

Location maps are used to show one or more pins on a map. Each location can be configured with an additional action that occurs when the callout bubble is tapped. The list of locations can can come from the screens configuration data or a remote file hosted on a backend server. Hosting the locations on a remote server allows for dynamic changes. This sample text file shows the format of a remote file of locations. Sample JSON {“itemId”:”99999″, “itemType”:”BT_screen_map”, “itemNickname”:”Location Map”, “navBarTitleText”:”Monterey Spots”, “dataURL”:”http://mywebsite.com/locationsForMap.php&#8221;}

Location Map Properties

Item Id * “itemId”:”a unique id” A unique number or string identifying this item from all other items in the configuration file.

Item Type * “itemType”:”BT_screen_map” Used by the mobile app to determine what type of item to create.

Item Nickname * “itemNickname”:”A unique nickname” The nickname of the item in the buzztouch control panel.

Child Items “childItems”:[Array of Map

Also this if for android, but assume similar code exists for iOS.
Look in your BT_sceen_map.java file
Find this:
//parse screenData…
Here its going to check out your JSON for that screen, and put into an array called items. It then breaks down items (JSON stuff) in the lines after to the respective nodes for the application later on.
Your mission would be to modify this code for it to take your GeoRSS. If this is your only map screen, then you could start by feeding your feed vs JSON stuff, but a ton of modification will probably need to take place to get it everything lined up correct. It will not be a cut and paste type job.
If you had multiple map screens, you would have to be on BT 2.0, as you would need to rewrite the plugin screen to have a field for your GeoRSS. If present, you would have the plugin bypass the json parse and move to the GeoRSS parse.
That’s all i got, perhaps someone else might be able to assist more. Zakamo

Acknowledgements:

ATRAIN53 made me aware of Eclipse Keytool

LorenH from the Buzztouch Forum provided the solution to the “Get Driving directions”.

Zackamo Aspiring developer Profile Posts: 159 Reg: Oct 25, 2011 Bryan TX

1,590
like
03/11/12 05:08 AM (6 days ago)
Boom. Android way of doing current location.
Add this code: me=new MyLocationOverlay(this, mapView);
mapView.getOverlays().add(me); me.enableMyLocation();
to the if statement area here: // add device location if we have it and showUserLocation != “0”
By adding it to the if statement, we should allow for enabling from console.
I nuked all of the user location stuff so the phone won’t come up.
It should be noted that you are stuck with the blue dot. No custom stuff, but this is a bit cleaner in my opinion.
It appears like 2.0 and 1.5 it will be the same.
BT_screen_map.java
Search for the comment above but looks like to be around line 745ish.
We need to add some declarations, sorry I forgot that..
Go to where all the variables are being called at the top, and add private MyLocationOverlay me=null;
Also you want to add the original code after the if statement opens.
So like this.
//add device location if we have it and showUserLocation != “0”
if(tmpLatitude.length() > 4 && !showUserLocation.equalsIgnoreCase(“0”)){ me=new MyLocationOverlay(this, mapView); mapView.getOverlays().add(me); me.enableMyLocation();If for some reason it doesn’t work, change
tmpLatitude.length() > 4 to tmpLatitude.length() > 0In all reality you can put the code I gave you it almost any of the main functions for this file and it should work. My goal was to have it play with current buzztouch thought process correctly.

Adding multiple map locations to a Buzztouch app:

Several methods:

1. batchgeo.com will create a multiple location map if you have all the locations in a Tab-delimited spreadsheet. From there you can get the custom URL to the map and use that in BuzzTouch.

2. Multi Pin Map Workaround

3. Here’s a video By forestryforum “Using Google Earth and Google maps to create and execute a .kmz file via your phone app”.

Here’s his post explaining what he did.

My summary of his post:

1. Create a map on our online forum where members can add themselves. It is only accessible by members.

2. Use this map feature also provides a download link of the current data in a .kml file that you can open with Google Earth.

3. upload that file to an accessible webserver

4. then take the address of the file to google maps and put it in the search, it will open up all of your locations on a google map.

5. Google maps creates a URL link, or an embed link that you can use. You can also choose the option to have it create a short link for you.

6. Place the link in your App custom url screen.

4/21/12 post by David @ Buzztouch,
Another idea: Have a look at the sample data for locations in the v1.5 documentation. Assuming you’re using BT v2.0.
a) make a copy of that file.
b) Upload it to your file manager.
c) “Point” to that file with using the Data URL property of the map screen.
d) Test to make sure it works as expected.
e) Add additional locations to the file as needed from your real data.
***************************************************
From Forum post by @geo3d:
Re: Location In a nutshell;
1) Fine = GPS location
2) coarse = WiFI

Here’s a thought regarding your map; if you plan on using location services for your users you could implement a Google Static Map which just loads, you guessed it -a static map; but allows for use of GPS devices: https://developers.google.com/maps/documentation/staticmaps/

Using static map allows the ease of just pointing to a URL; and with Buzztouch’s custom url plugin its an ease to implement.

Or you could create your own map with such free products as Quantum GIS for example

Buzztouch™: Online vs. Offline Apps, Publishing & Maintaining Your App

Online Apps vs. Offline Apps and How it relates to Publishing Your App

(Foreword: this article is a consoldiation of several articles, and is in the process of being rewitten. Bear with me as I deleted duplicated bits & pieces. Hopefully the final product will be clearer and easier than the previous multiple articles.)

  • Overview
  • Connection to Buzztouch Control Panel
  • Online vs. Offline – Factors to consider
  • Interactive App Development
  • Initial Publication of App
  • Publishing Process
  • Phase One – App Creation, Initial Deployment thru Stabilization
  • Phase Two – Updating & Maintaining The Stabilized App
  • Issues with updating an Online app
  • The Source Code
  • Embedded Content
  • Links
  • Life-cycle of an Online app
  • Taking Your App Offline
  • Updating an Online App Published to iTunes App Store Market

Overview: As a Buzztouch app developer and/or publisher you need to understand the concept of Online apps vs. Offline apps, the BT_config.text file and how it all relates to publishing and updating your app. Buzztouch provides you with the ability to make your app Online or Offline. A Online app is an app that’s connected to an Online Config file (Usually the Buzztouch Control Panel, but could be Dropbox or a website). Hence, a Offline app is an app that has been disconnected from an online Config file. When your Buzztouch™ app is created by default it’s an Online app. That means the Report to Cloud URL and Configuration URL both have values in them (By default connecting the app to the control panel.) How you update an app will depend on various factors.

  • Online / Offline Status
  • Content being updated

Connection to Buzztouch Control Panel

I believe that only in unusual circumstances will you wish to take an app offline.

I believe the better process is to use a 3rd party (Dropbox) online Config file, and (very important part) initially publish the app using Dropbox as your online Config file location.

Understanding Online vs. Offline apps, is an extensive explanation by @GoNorthWest of how the Refresh process works and how online vs. offline apps behave and how it is related to the Data URL and Report To Cloud URL settings in your control panel and BT_config.txt file.

Online or Offline App? Once you understand this feature the next question is,  “Whether you should Publish your app as Online or Offline?” and “When to take your app Online or Offline.”

  • Various Factors to consider
    • The nature & design of the app
    • Skill of developer
    • Ease of updating (think iOS apps need approval)
    • Urgency & Frequency of Updates (think App Store approval with process lasting up to a week or more.)
    • Where the app is published (Android Market probably will not need as an extensive third-party approval process, therefore re-publishing is seamless.)
    • Business model (online purchasing, Android licensing, . . .)
    • Feasibility of having a duplicate app for testing / development?
    • Is it possible your app will have latent defects?
    • Life Stage of App?

Interactive App Development: When initially publishing the app, if the app is Online you can use interactive feature to help develope the app by having users post questions and suggestions that you can deploy immediately.  Have the users engage in game like competitions, earning points and climbing numbered levels winning bonus content. They can also receive non monetary awards. A new doctor’s website uses this interactive feature by awarding whimsically named prizes, like the “It’s Not Brain Surgery” prize.

Initial Publication of App: Even if you can or wish to have an Offline app you should consider initially publishing the app as an Online app so you can immediately fix overlooked and latent errors after upgrading the app. This is especially important if you don’t test over multiple devices by using an Ad Hoc method for testing. How many of us wish we could correct a post immediately after we post it. Can you deal with a week or more of complaints, refunds, uninstalls and bad ratings because you couldn’t immediately fix an oversight.

Publishing Process

Phase One – App Creation & Initial Deployment:

  • Create app in Buzztouch Control Panel
  • Download Source Code
  • Create Eclipse or Xcode Project
  • Make changes to Source Code
  • Install on device / Run on Virtual Device (Emulator, Simulator)
  • Add, Modify, Delete Screens using Control Panel
  • Install to multiple devices for testing (Ad Hoc Team)
  • Fix bugs, oversights
  • Update the Source Code Config file.
  • Publish/Export Online App
  • Consider using Interactive App Development Features
  • Republish App with bugs and oversight fixes
  • Consider taking app Offline (Optional)
  • App is now Stabilized

Phase Two – Updating & Maintaince of Your Stabilized App:

  • If feasible, consider using a duplicate app to add and test new features. Create a separate test app where you develop and test the new features you want to provide before you publish them to the existing app.
  • If app is an Online app consider taking app Offline to deploy major update. By taking your app Offline you can make changes to dynamic content that the user will not see until you take the app back Online.
  • Add / Modify / Test new features as appropriate
  • Having an app Offline allows you to tweak the app, add content, experiment and make other changes without annoying the app’s users.
  • If app was/is Offlline, take app Online with updates to dynamic content
  • Return app to Orginial Phase Two State (Online or Offline)
  • Repeat as Necessary
  • Monitor user suggestions, complaints, fix bugs, oversights, misspellings (If Online you can immediately fix dynamic content without needing to re-publish.)
  • Publish updates to appropriate app store as needed

Issues with updating an Online app (on iTunes or Android Market):

  • Updating an Online App Published to iTunes App Store Market
  • Option #1: Submit update to app store, wait for approval & publish update. (Repeat as necessary)
  • Option #2: Submit app with pre-deployed content. By submitting an update to the App Store with pre-deployed content you can obtain pre-approval to changes to the app’s static content without the delay of the approval process at the time of the update.
    • After update is approved and published the app user will still not see any changes.
    • After the update is published implement changes via the control panel.
    • You may wish to temporarily take app off-line but it’s not necessary.
    • Next time user opens the app, the app will update to latest version of content.
    • This way you can make changes to non-dynamic content to online apps after the changes have been approved and been published.
    • You made need to explain to the Apple/Google reviewer why there’s an update, but by apparent review there no difference.

Buzztouch app are updated by three methods, each method has its unique characteristics:

  • Published Update (export .apk or .ipa)
  • Update dynamic content via changes in the Control Panel
  • Updates to Web Content

The .apk (Android) and .ipa (iOS) are zip files that contain the content and programing of your app. The zip files contains three basic elements:

  1. Source Code
  2. Embedded Content
  3. Links (URLs)

The Source Code (manifest, config.txt file, HTML, CSS, . . .)

Embedded Content consists of image, Word, PDF, PowerPoint, Excel files, HTML docs and more)

Links (to websites, to PDF, Word, PDF, PowerPoint, Excel files, HTML docs, YouTube links, mp3 files and more)

When the Source Code is downloaded among other files created is the BT_config.txt file. The BT_config.txt file is a snapshot of the info in the Buzztouch Control Panel. Unless you modify the BT_config.txt file this snapshot is what

RSS Feed & Buzztouch, How To

Currently the BTv1.5 Android screen is unfinished.

We’re awaiting release of the

Here’s a 3rd party BTv2.0 RSS Feed Plugin (iOS only) Use it with the header image plugin and you have the rss-reader option.

Nice Tutorial for a XML RSS reader.

Meanwhile here’s a How To for a  RSS Feed in Buzztouch:

Yahoo Pipes Overview

A Guide to Yahoo Pipes by squidoo

RSSincluded On a tip from MGoBlue, I created a free RSS Feed with RSSinclude. I used the Html Document screen in BTv1.5, added a link from RSSInclude (I only have one feed at this time) and it works, very nice. Very easy setup. After you create your account with RSSinclude:

1. Create new RSSbox in RSSinclude.

2. Copy & Paste the URL of a news feed.

3. Choose your template (I chose the “Simple Vertical List” template, 10 items.)

4. Select the “Include!” button and select the “DirectLink” button.

5. Copy the url created by RSSincluded.

6. Create a “Html Document screen” in Buzztouch.

7. Paste the url link from RSSInclude in the “HTML URL / Web Address” box in Buzztouch and saved.

You’re finished, 🙂

Fred

Additional options

Understanding Apple, in a post reformation world

Understanding Apple, in a post reformation world

What you must appreciate is that Apple is sorta like a born-again post-reformation mega-church.

Apple wants to have a personal relationship with each and every one of us, and tithing starts at $99/year.

Apple doesn’t want priests (app developers) placing themselves between the flock (publisher) and the Almighty (Apple). Therefore every organization (publisher) desiring to have an app shall be allowed (obligated) to have a personal relationship with Apple.

So though Apple is happy for you the developer to help bring the flock to enlightenment (creating the app) you will not interfere with Apple’s personal relationship ($99/yr.) with the flock (publisher).

Even further, the flock (the publisher) shall not interfere with Apple’s direct and personal relationship with the sheep (the app user) by allowing direct install of the app. Install will be directly through the Almighty (Apple).

Therefore all personal relationship (30%) between the user and Apple shall not be interfered by either the developer or the publisher.

Furthermore, Thy shall not jailbreak, it’s a mortal sin which leads to damnation and you’ll be excommunicated (Apple will cancel your warranty).

If you wish to giveup drinking the Kool-Aid consider:
Jailbreaking, or
Mobile Web Apps.

Just some musings by,

Fred