Friday, February 3, 2017

Privacy Policy



As the sole developer of ShuffleTone, I want to make it clear that I absolutely respect your privacy. ShuffleTone and it's implementation requires several permissions to work properly that deal with potentially sensitive information.

Permissions

android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE


Permission to access files on your SD Card/Internal Storage. This allowed ShuffleTone to be read and write files that represented the ringtone playlists. No other use of this permission is made.

android.permission.READ_PHONE_STATE


Permission to detect when the device is receiving a phone call. This allowed the application to shuffle the ringtone for phone calls. No information is read about your number or who is calling. No other use of this permission is made.

android.permission.RECEIVE_MMS
android.permission.RECEIVE_SMS


Permission to detect when the device is receiving a SMS or MMS message. This allowed the application to shuffle the ringtone for text messages. No information is read about your number or the number that is texting you. No other use of this permission is made.

android.permission.READ_SMS


This permission is a bit deceptive. ShuffleTone does not read your SMS messages at all. This may be different now, but at the time that I wrote the application, to do something when the phone receives SMS/MMS event, this permission is required; Mostly because that data about who was texting and the contents of the text are passed to these event handlers. ShuffleTone doesn't care about this information... It just needs to know when you are recieving a text. Without the permission, the application would crash; There was no working around it. No other use of this permission is made.

android.permission.RECEIVE_BOOT_COMPLETED

Permission to know when the device has been rebooted. ShuffleTone used this to set up repeating system alarms that would shuffle the ringtone at an interval if the user set up their preferences that way. No other use of this permission is used.

android.permission.VIBRATE

Permission is used to simulate the normal process of handling a ringtone shuffle. I encouraged all my users to set up their phones to rely on Android, but some users and some devices didn't work with that process, so if the user set it up, ShuffleTone would make its own notification, including vibrating when receiving a message. No other use of this permission is used.

android.permission.WRITE_SETTINGS

Permission is used to write the current phone ringtone settings or notification ringtone settings. No other use of this permission is used.

com.android.vending.BILLING

The code that used this permission has been taken out. I apologize that the permission is still requested. No billing is performed in ShuffleTone

Lastly, ShuffleTone does not use your network at all. Not only does ShuffleTone avoid reading any personal information, but there is no way ShuffleTone could take part in getting that information off of your phone. Choosing not to run ads was important to me because I could leave a guarantee that I value your privacy by literally doing everything in my power to leave it alone. I hope you feel safe and confident using ShuffleTone as well as future DizWARE products.

Monday, March 9, 2015

Week 9ish: Hooking it up

I did not post last week. I didn't have time to work on anything, and so there really wasn't anything to post. But I'm back again this week :)

The last post I made, I showcased the visual side of the file browser. This week, I hooked up those pieces that work with the browser, including the Select All button, selecting individual ringtones, and the Media Player.

Yes folks, you can now select a ringtone and it will play. You can also pause and switch between whatever ringtone you choose. I always loved playing in the finished file browser of my previous versions of ShuffleTone. A long time ago, when phones were a lot slower then they are now, I'd use the file browser to show off my ringtones or songs I had downloaded, because it was actually faster to get it booted up and to find and play the song. I feel I have resurrected that feeling. It's super fast and clean. The media controls allow for easy pausing and show info about what you are playing. Overall, it is a much better system than anything I've previously done for ShuffleTone.

I'm not far from finally being able to save new playlists I think. I want to get the look and feel finished first before I move on to that. I was thinking as I was driving home that in the past, the most difficult development was the file browser. It took a long time, always had crazy bugs, and never looked very good, even though it took the longest to develop. I'm hoping that once the file browser is finished, everything else will begin to fall into place, so I'm doing my best to really make it look and feel great. I really think I've been successful so far :D

Hope y'all have an awesome week!!
Tyler -- DizWARE

Thursday, February 26, 2015

Week 8 - Progress

It has been a great week for progress. Last week, I was having an impossibly difficult time loading all the ringtones quickly and correctly. I needed to get information from each audio file, that was incomplete using the system MediaStore. I have officially fixed this. I have 1400 Media files on my phone, that load instantly with all the correct media information, Which is already a lot better then the version that is on Google Play. The code is much cleaner as well :)

Next thing I did was hook up a list adapter. The job of a list adapter is to take a list of items that has a large amount of data, and turn each one into a presentable element that the user can interact with. Those elements are then placed in the list you see. I then also added a Media Player that will sit at the bottom of the screen. I haven't quite finished the functionality of the Media Player but the aesthetics are officially in place. I'd like to add the ability to minimize the Media Player while the user isn't interacting with it, but I'm thinking that won't be too hard. I'll make it happen :)


Here's a pic:


I really like it looks. I've tested it on an older phone on Ice Cream Sandwitch, a Phablet, and a tablet. The experience has been consistent and, looks good on all devices. I'm getting pretty excited as pieces start coming together.

I'm hoping to keep up this progress. I think, once I get through a lot of the specific GUI issues, progress will really speed up.

Anyway have a great week!
Tyler -- DizWARE 





Thursday, February 19, 2015

Week 7: File Browser

Sorry about the really late post. I had a half written one from last week, and never came back to finish it, so I'll recap. Last week, I started working with the File Browser. There really is no way to get any further in the app without a way to set up playlists properly. Previously, I would make a playlist in the old version of ShuffleTone, uninstall, install the new version of ShuffleTone, and the used a little tool I wrote that converted the files to the new format. It was a horrible process. 

Anyway, one of my goals is to do a better job handling loading the ringtones from your phone. A lot of people have brought up issues of incorrect length songs, which I would like to fix if I can. I've created what's called an AsyncTask, which basically allows for work to be done in the background but also keep the user informed on the main view. I attempted to pull Metadata from the media files, but it's really slow. This is obviously not the solution, but it's a good start. 

Most likely what's going to happen is that loading metadata will happen in a reduced scale, like maybe just prior to displaying each item. This would leave only a need to load the file info and media id when the application loads the file browser, and loads the media info as needed. Another possible solution is loading the metadata in the background after the ringtones have been gathered together into a playlist, starting with the ones the user is seeing first.

Once I've finished with this issue, I'll be working on adapting the data to something that can be displayed and eventually used properly. This will take all this data that is loaded from your internal and external memory, and allow you to click, manipulate, listen to and otherwise set up your playlists. 

Anyway, till next week! :)
Tyler--DizWARE

Tuesday, February 3, 2015

Week 6: Them Colors Though

Not much to report this week. I had kind of a unexpectedly busy week that kept me away for almost all my free time. But don't worry. After I finish this blog post, I'll be tinkering for the rest of the night. :)

This doesn't mean I didn't get anything done though... I am really trying to squeeze as much time out as I can. One of the bigger things I dedicated some time to was upgrading my phone to Lollipop. This is a pretty essential step since testing notifications is fairly difficult in the Device Emulator. Now, my phone hasn't received Lollipop officially, but it should get the job done for testing. I also put Ice Cream Sandwitch(Android 4.0.3) on one of my older phones. This should cover all the Android versions that I'm targeting for testing.

I played with the colors of app. I'm trying to find a really good theme for the application that I can make consistent throughout the application. I really liked this, and will probably try this and see how it works. Let me know what you think :D


I also spent some time working on some logistics, which I drew out on my white board :D I took a pic of the diagrams that I drew. The File Browser is going to be my first focus. I want to get something at least temporary to work with. So this was the first steps and discussion... I coded up some of it already so we'll see where it goes :)


Anyway, that's it for this week. See you next week :D

Sunday, January 25, 2015

Week 5: What you see is what you get

There's a cool acronym that I've always liked as a developer, that's pretty common among different platforms - WYSIWYG; It means What You See Is What You Get. Essentially, when developing a visual interface, a common tool that is provided is a WYSIWYG editor meaning you basically drag things where you want, and where you put it is where it will be in the final product.

One of the cool things that Android Studio provides is a very good WYSIWYG editor. This certainly makes things easier. It's still work, but for a guy who can't even draw good stick figures, this helps out a ton. I spent a lot of time this week playing around with Android Studio's editor. So far, I've really worked on row items, headers, footers, as well as the Action Bar. Now, this it isn't much in way of the actual app, but it is some fairly decent progress. None of it is final; Actually all of it needs work, but I think it's a great start.

Here's some screen shots of some of the progress:


An example a single Alarm Clock Item(imagine a list of these)



An example of the header that is in the
ringtone browser.  Imagine this at the very top
of a list of ringtones 


An example of the button that would  be found at the bottom of
a list of Ringtone Playlists.

An example of a Playlist item that would be
found on the home screen. It shows where
playlists are in use

This is an example of the Ringtone Player that would be found
in the filebrowser. The player will be black but the list
of ringtones will be white. Try and imagine what that looks like

An example of a Ringtone item in the
File browser. I'm not sold on this one. Expect
this to change

This is an example of a possible alarm creator. This is basically
what Android provides, but I kinda like it. It will depend
on how it looks once it's integrated
 
A very early look on the action bar. There
is a sort button, and a add playlist button; The
Color matches the new icon, which I like

A very early look at the navigation bar. This is not even close
but I am using the navigation bar as the way to navigate around
the app


Now as I said, this is all very early. It is all subject to change. I've done this first so that I can use placeholder pieces to put together a prototype, which then will weed out the good, the bad, and the ugly. 

Feel free to comment what you think. I appreciate your opinions. If you really don't like something, let me know and I'll take your opinion into consideration. GUI's have previously been my struggling point, as some of you already know, so it's my goal to really take the best opinions, including my own and make something great.

Anyway, it's late. Have a wonderful week!

Tuesday, January 20, 2015

Week 4: Practice makes perfect

It's been a unconventional week, as far as development goes.

Just recently, Google has been encouraging developers to make a pretty big shift in their development process. This week has strictly been focused on meeting these requirements

Quick history lesson: When the Android SDK was released, the software provided to write Android apps was a plugin for a common Development program called Eclipse. It was fairly simple to use but had a lot of limitations; None the less, it was the defacto way of developing and debugging Android apps. At the end of 2013, Google released an early version of an Android only development software called Android Studio. In December, the official version of the software was released with a request to all developers to move their development to Android Studio only.

The difference between the two is actually quite large and it has been a difficult learning curve for me, so I decided to take a course on Android Studio. It's comprised of most of my free time this week, and probably going to carry over next week. It's in my plans to also take a course on some of the new Android features. I'm driving to bring the very best, and the more practice I have with creating a good User Experience, the better I can deliver on my promises.

Last, before I close this blog, I want to talk just a little bit about the testing I've done so far this week. If you remember from last week, there is no GUI right now, so it's a little difficult to work with. Nonetheless, currently the app only lets you apply a playlist on application ringtones using a temporary ringtone picker I made. Basically, you go to any app and click set Notification Ringtone. So far it has successfully shuffled and played the next ringtone on the playlist. So far I have not had any problems, with the exception of some cosmetic and technical choices I was using specifically to test. There is a lot more functionality already put into the app, but this is the only thing that can be done through the barely existent GUI. Really exciting stuff are on its way. Hopefully, once I get through all the courses I have planned, I will be well on my way to get the GUI's I've drawn and designed.

Anyway, Hope y'all have a great week. I wanted to share some images of where the magic happens. I didn't take any pictures of my whiteboard wall that I bought, but here's my desk and my gadgets that I am using to test, and some that I have ideas planned for in the future. Enjoy :)


My many screens where the magic happen.













My devices. Amazon HDX, A Lumina 520 Windows phone, an LG G Watch, HTC One M7, HTC One Max, Samsung Vibrant, Google Cardboard, and I use a HTC One M8 as my main phone :)













I officially got my degree this week as well. This is the reason ShuffleTone has been postponed for so long. Sorry about that :)

Tyler -- DizWARE