Skip to content

Commit

Permalink
added backup and it's safely ignored on 1.6 will test on 2.2
Browse files Browse the repository at this point in the history
  • Loading branch information
doo committed Jan 19, 2012
1 parent 01961bc commit 4b867d9
Show file tree
Hide file tree
Showing 19 changed files with 839 additions and 681 deletions.
74 changes: 51 additions & 23 deletions MeditationTracker/AndroidManifest.xml
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,26 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.meditationtracker" android:versionCode="6" android:versionName="Torma">
<application android:icon="@drawable/launcher_48"
android:label="@string/app_name" android:debuggable="false" android:theme="@android:style/Theme.Light.NoTitleBar">
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
package="com.meditationtracker"
android:versionCode="6"
android:versionName="Torma" android:installLocation="auto">

<activity android:name="SettingsActivity" android:theme="@android:style/Theme.Light"></activity>
<activity android:name="NewOrEditPracticeDBActivity"></activity>
<activity android:name="NewOrEditPracticeScreenActivity"></activity>
<activity android:name="PracticeActivity"></activity>
<activity android:name="ScheduleActivity"></activity>
<activity android:name="ImagePicker"></activity>
<provider android:name="PracticeImageProvider"
android:authorities="com.meditationtracker.imageProvider"></provider>
<activity android:name="SessionActivity"></activity>
</application>
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.VIBRATE" />
<!-- uses-permission android:name="android.permission.INTERNET" / -->
</manifest>
<application
android:allowBackup="true"
android:backupAgent="com.meditationtracker.sync.backup.BackupAgent"
android:debuggable="true"
android:hardwareAccelerated="true"
android:icon="@drawable/launcher_48"
android:label="@string/app_name"
android:restoreAnyVersion="true"
android:theme="@android:style/Theme.Light.NoTitleBar">
<activity
android:name=".MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="SettingsActivity"
android:theme="@android:style/Theme.Light" >
</activity>
<activity android:name="NewOrEditPracticeDBActivity" >
</activity>
<activity android:name="NewOrEditPracticeScreenActivity" >
</activity>
<activity android:name="PracticeActivity" >
</activity>
<activity android:name="ScheduleActivity" >
</activity>
<activity android:name="ImagePicker" >
</activity>

<provider
android:name="PracticeImageProvider"
android:authorities="com.meditationtracker.imageProvider" >
</provider>

<activity android:name="SessionActivity" >
</activity>
</application>

<uses-sdk android:minSdkVersion="4" />

<uses-permission android:name="android.permission.VIBRATE" />
<!-- uses-permission android:name="android.permission.INTERNET" / -->

</manifest>
628 changes: 314 additions & 314 deletions MeditationTracker/gen/com/meditationtracker/R.java
100644 → 100755

Large diffs are not rendered by default.

628 changes: 314 additions & 314 deletions MeditationTracker/gen/doo/util/root/R.java
100644 → 100755

Large diffs are not rendered by default.

Binary file not shown.
Binary file not shown.
Binary file added MeditationTracker/lib/commons-dbutils-1.3.jar
Binary file not shown.
Binary file not shown.
Binary file added MeditationTracker/lib/persistence-api-1.0.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion MeditationTracker/project.properties
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@
# Indicates whether an apk should be generated for each density.
split.density=false
# Project target.
target=android-4
target=android-15
proguard.config=proguard.cfg
android.library.reference.1=../dootil
2 changes: 2 additions & 0 deletions MeditationTracker/src/com/meditationtracker/PracticeActivity.java
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import java.util.Calendar;

import com.meditationtracker.controls.MenuBar;
import com.meditationtracker.sync.backup.BackupManagerWrapper;

import android.content.Intent;
import android.content.SharedPreferences;
Expand Down Expand Up @@ -215,6 +216,7 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data)
}
}

new BackupManagerWrapper(this).dataChanged();
updateView();
}

Expand Down
2 changes: 1 addition & 1 deletion MeditationTracker/src/com/meditationtracker/PracticeDatabase.java
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

public class PracticeDatabase {
// private static final String MTRK_LOG_KEY = "MTRK";
private static final String DBNAME = "MediTracker";
public static final String DBNAME = "MediTracker";
private static final int DBVERSION = 1;

private static final String PRACTICE_TABLE_NAME = "Practices";
Expand Down
29 changes: 1 addition & 28 deletions MeditationTracker/src/com/meditationtracker/PracticeImageProvider.java
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
public class PracticeImageProvider extends ContentProvider
{
private static final String NOT_SUPPORTED_BY_THIS_PROVIDER = "Not supported by this provider";
static final String URI_PREFIX = "content://com.meditationtracker.imageProvider";
public static final String URI_PREFIX = "content://com.meditationtracker.imageProvider";

public static String constructUri(String url)
{
Expand All @@ -32,33 +32,6 @@ public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundEx
file = new File(context.getFilesDir() + File.separator + file.getAbsolutePath());
}

/*
//TODO: DO I WANT THIS AT ALL?
* NO
String fileName = file.getName();
if (!fileName.startsWith("img") || !fileName.endsWith(".jpeg") && !file.exists())
{
if (context != null)
{
try
{
Field f = R.drawable.class.getField(fileName);
BitmapDrawable bitDrawable = (BitmapDrawable) context.getResources().getDrawable((Integer) f.get(null));
FileOutputStream fos = context.openFileOutput(fileName, Context.MODE_PRIVATE);
bitDrawable.getBitmap().compress(Bitmap.CompressFormat.JPEG, 95, fos);
fos.close();
} catch (Exception e)
{
e.printStackTrace();
throw new FileNotFoundException("You dare not accessing file " + uri);
}
} else
throw new FileNotFoundException("You dare not accessing file " + uri);
}*/

ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
return parcel;
}
Expand Down
7 changes: 7 additions & 0 deletions MeditationTracker/src/com/meditationtracker/SettingsActivity.java
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.meditationtracker;

import com.meditationtracker.sync.backup.BackupManagerWrapper;

import android.preference.PreferenceActivity;
import android.os.Bundle;

Expand All @@ -14,4 +16,9 @@ public void onCreate(Bundle savedInstanceState) {
addPreferencesFromResource(R.xml.preferences);
}

@Override
public void onPause() {
super.onPause();
new BackupManagerWrapper(this).dataChanged();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package com.meditationtracker.sync.backup;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.meditationtracker.PracticeDatabase;

import android.app.backup.BackupHelper;
import android.app.backup.FileBackupHelper;
import android.app.backup.SharedPreferencesBackupHelper;

public class BackupAgent extends android.app.backup.BackupAgentHelper {

private BackupHelper prefsHelper;
//private BackupHelper meditationHelper;

@Override
public void onCreate() {
super.onCreate();

prefsHelper = new SharedPreferencesBackupHelper(this);
addHelper("settings", prefsHelper);

/* meditationHelper = new MeditationBackupHelper();
addHelper("meditations", meditationHelper);*/


List<String> files = new ArrayList<String>();
files.add("../databases/" + PracticeDatabase.DBNAME);

File filesDir = getFilesDir();
for (File f : filesDir.listFiles()) {
files.add(f.getAbsolutePath());
}

FileBackupHelper dbData = new FileBackupHelper(this,
(String[])files.toArray());
addHelper(PracticeDatabase.DBNAME, dbData);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.meditationtracker.sync.backup;

import android.app.backup.RestoreObserver;
import android.content.Context;
import android.util.Log;

public class BackupManagerWrapper {
private IBackupManager instance;

public BackupManagerWrapper(Context context) {
try {
instance = new RealBackupManager(context);
}catch (VerifyError e) {
Log.d("MTRK", "Will skip backup ops");
instance = new DummyBackupManager(context);
}
}

public void dataChanged() {
instance.dataChanged();
}

public int requestRestore(RestoreObserver observer) {
return instance.requestRestore(observer);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package com.meditationtracker.sync.backup;

import android.app.backup.RestoreObserver;
import android.content.Context;

public class DummyBackupManager implements IBackupManager {

public DummyBackupManager(Context context) { }

@Override
public void dataChanged() { }

@Override
public int requestRestore(RestoreObserver observer) { return 1; }

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
package com.meditationtracker.sync.backup;

import android.app.backup.RestoreObserver;

public interface IBackupManager {
void dataChanged();
int requestRestore(RestoreObserver observer);
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.meditationtracker.sync.backup;

import android.app.backup.BackupAgentHelper;
import android.app.backup.BackupDataInputStream;
import android.app.backup.BackupDataOutput;
import android.app.backup.BackupHelper;
import android.os.ParcelFileDescriptor;

public class MeditationBackupHelper extends BackupAgentHelper implements BackupHelper {

public MeditationBackupHelper() {
}

@Override
public void performBackup(ParcelFileDescriptor arg0, BackupDataOutput arg1, ParcelFileDescriptor arg2) {
// TODO Auto-generated method stub

}

@Override
public void restoreEntity(BackupDataInputStream arg0) {
// TODO Auto-generated method stub

}

@Override
public void writeNewStateDescription(ParcelFileDescriptor arg0) {
// TODO Auto-generated method stub

}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.meditationtracker.sync.backup;

import android.app.backup.BackupManager;
import android.app.backup.RestoreObserver;
import android.content.Context;

public class RealBackupManager implements IBackupManager {
private BackupManager instance;

public RealBackupManager(Context context) {
instance = new BackupManager(context);
}

@Override
public void dataChanged() {
instance.dataChanged();
}

@Override
public int requestRestore(RestoreObserver observer) {
return instance.requestRestore(observer);
}

}

0 comments on commit 4b867d9

Please sign in to comment.