Share My Creation PhoneBackup - Backup your SMS/Call Logs/Contacts

Announcing another new free app: PhoneBackup

It can backup/restore your SMS/Call Logs/Contacts to a CSV file.
With Cloudpipes integration, it can also schedule backups and upload them to Dropbox.

This project started as a small plugin for Cloudpipes (and still is). It can still be used without it (but it does not schedule then).

This is one of the better designed apps (both in terms of code quality and looks), since it uses classes and I figured out many things.
I learnt about ContentProviders, Threading, handlers in libs. In B4A, it uses a lot of Intents/Permissions and Plugin integration with other apps, and also some classes.

Thanks to all the people who helped. I hope this is a useful app for everyone.

One interesting use is you can Backup the contacts/sms/logs to a CSV file, then MODIFY them in Excel/Notepad, and then transfers them to a device. This can be used to bulk modify contacts, or spoof/fake some data.

Download from Play Store


.
 

Attachments

  • s1.png
    s1.png
    66.1 KB · Views: 3,655
  • s2.png
    s2.png
    94 KB · Views: 606

AlDim

Member
Licensed User
Longtime User
some friends search for something like that, so i post it at fb :)
 

RiverRaid

Active Member
Licensed User
Longtime User
Wow!

Nice UI :)

I love the Arrow animating while the expandable panels slide out :) Did you do that with the animation library?

One small thing... it would be nice if the whole areas of the items would be clickable to set the checkbox (see attached screenshot)

You could do it with:
B4X:
Sub Label1_Click
     ClickCheckbox(chkBox1)
End Sub

Sub ClickCheckbox(s As checkbox)
Dim r As Reflector
r.Target = s
r.RunMethod("performClick")
End Sub
 

Attachments

  • click.png
    click.png
    33.2 KB · Views: 397

thedesolatesoul

Expert
Licensed User
Longtime User
Wow!

Nice UI :)

I love the Arrow animating while the expandable panels slide out :) Did you do that with the animation library?

One small thing... it would be nice if the whole areas of the items would be clickable to set the checkbox (see attached screenshot)

You could do it with:
B4X:
Sub Label1_Click
     ClickCheckbox(chkBox1)
End Sub

Sub ClickCheckbox(s As checkbox)
Dim r As Reflector
r.Target = s
r.RunMethod("performClick")
End Sub
Thanks a lot for the feedback.
Yes, the animating arrows use the animation library.

Thanks for the suggestion, I will add a click to the labels too, soon.
 

RiverRaid

Active Member
Licensed User
Longtime User
Hi. Found a small bug :)


If you doubleclick very fast on the expandable panel, the arrow gets a bit confused, see that attached screenshot.

Regards
 

Attachments

  • rps20130622_082625.jpg
    rps20130622_082625.jpg
    49.4 KB · Views: 427

giga

Well-Known Member
Licensed User
Longtime User
App looks Great, I had a question. I have also been working on a backup for phone.

Since you are able to access the contacts/sms directories on the phone are you also able to access the emails also to backup?

When I have tried to access these directories I get access denied. What was your trick if you dont mind sharing.

Thanks,
You did a Great Job.
 

RiverRaid

Active Member
Licensed User
Longtime User
Ah yes im aware of that bug and im surprised how many people have reported it! I guess everyone is tapping the panels real quickly?
I just left that in as a minor easter egg :p

Sent from my GT-I9305 using Tapatalk 2

Your desicion ;) But think about it: If a user uses your App, he wants to make sure his personal important data is saved securely. He has to trust your app, that the app will do this properly. If the user finds the bug, he will wonder how an eye-catching bug could survive testing and qa... Maybe he thinks then, that other parts of the app may have bugs as well and switches to another app... because he lost trust in your app.

Nevertheless, I love your design :sign0089:
 

thedesolatesoul

Expert
Licensed User
Longtime User
very nice !!

how did you put shadow to your controls?
Most of the shadow is just a 9patch image with a shadow. The 9patch image expands automatically.


App looks Great, I had a question. I have also been working on a backup for phone.

Since you are able to access the contacts/sms directories on the phone are you also able to access the emails also to backup?

When I have tried to access these directories I get access denied. What was your trick if you dont mind sharing.

Thanks,
You did a Great Job.
Do you mean accessing the email field for each contact?
I am not accessing the databases directly. Instead I am using the standard Content Providers. See here: Contacts Provider | Android Developers
I had to write a library to access these.


Your desicion ;) But think about it: If a user uses your App, he wants to make sure his personal important data is saved securely. He has to trust your app, that the app will do this properly. If the user finds the bug, he will wonder how an eye-catching bug could survive testing and qa... Maybe he thinks then, that other parts of the app may have bugs as well and switches to another app... because he lost trust in your app.

Nevertheless, I love your design :sign0089:
I can understand what you are saying, however if I try to achieve that level of perfection I will never be able to finish any app! :)
 

ilan

Expert
Licensed User
Longtime User
hi i have one more quetion

by choosing manualy the saving path
a list of all drives opens

where can i find the code that show me all folders and drives in my phone??

thanx
 

RiverRaid

Active Member
Licensed User
Longtime User
I can understand what you are saying, however if I try to achieve that level of perfection I will never be able to finish any app! :)

Right :)

If you like, i do it this way (and it works :):
In your class (clsExpandPanel)
B4X:
Private Sub Class_Globals
  ...
    Private imgCollapseExpand As ImageView
    Private AnimExpand As AnimationPlus 
    Private AnimClose As AnimationPlus 
End Sub

B4X:
Public Sub Initialize(pEventname As String, pModule As Object)
 ...
    imgCollapseExpand.Initialize("")
    imgCollapseExpand.Gravity = Gravity.FILL
    pnl.AddView(imgCollapseExpand, 4dip, 6dip, 32dip, 32dip)
    imgCollapseExpand.Bitmap = LoadBitmap(File.DirAssets, "collapse.png")
    
    AnimExpand.InitializeRotateCenter("",0,180,imgCollapseExpand)
    AnimClose.InitializeRotateCenter("",180,0,imgCollapseExpand)
    AnimExpand.PersistAfter = True
    AnimClose.PersistAfter = True
    AnimExpand.Duration = 700
    AnimClose.Duration = 700
    AnimExpand.SetInterpolator(AnimExpand.INTERPOLATOR_OVERSHOOT)
    AnimClose.SetInterpolator(AnimClose.INTERPOLATOR_OVERSHOOT)
End Sub
B4X:
Public Sub Expand
    ResizeTo(maxHeight)
    AnimExpand.Start(imgCollapseExpand)
End Sub

'Resizes the panel to minHeigh. Make sure to set it before you call Collapse
Public Sub Collapse
    ResizeTo(minHeight)
    AnimClose.Start(imgCollapseExpand)
End Sub
 
Top