Skip to content

Commit 1b39fc3

Browse files
Merge pull request #21 from jonasrottmann/develop
Develop
2 parents 22e8d19 + cb1888d commit 1b39fc3

39 files changed

+826
-405
lines changed

README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,17 @@ The project is available via [JitPack.io](https://jitpack.io/#jonasrottmann/real
2727
2. **Add the dependency**
2828
```
2929
dependencies {
30-
debugCompile 'com.github.jonasrottmann.realm-browser:realm-browser:0.0.13'
31-
testCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.13'
32-
releaseCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.13'
30+
debugCompile 'com.github.jonasrottmann.realm-browser:realm-browser:0.0.14'
31+
testCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.14'
32+
releaseCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.14'
3333
}
3434
```
3535
The no-op version of Realm Browser has empty functions which do nothing. It is not necessary to include this, but you may if you do not want to access Realm Browser in release mode. If you want to use a build of the newest development use `compile "com.github.jonasrottmann.realm-browser:realm-browser:develop-SNAPSHOT"` instead.
3636

3737
3. Exclude support libraries (maybe optional): Realm Browser depends on Android support libraries, so you might want to exclude them from your project if they conflict with the ones you include:
3838
```
3939
depedencies {
40-
debugCompile ('com.github.jonasrottmann.realm-browser:realm-browser:0.0.13') {
40+
debugCompile ('com.github.jonasrottmann.realm-browser:realm-browser:0.0.14') {
4141
exclude group: 'com.android.support';
4242
}
4343
}

app/build.gradle

+4
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,10 @@ dependencies {
4444
compile "com.android.support:appcompat-v7:$project.supportLibVersion"
4545
compile "com.jakewharton.timber:timber:$project.timberVersion"
4646

47+
debugCompile "com.squareup.leakcanary:leakcanary-android:$project.leakCanaryVersion"
48+
releaseCompile "com.squareup.leakcanary:leakcanary-android-no-op:$project.leakCanaryVersion"
49+
testCompile "com.squareup.leakcanary:leakcanary-android-no-op:$project.leakCanaryVersion"
50+
4751
androidTestCompile 'com.android.support.test.espresso:espresso-core:2.2.2', {
4852
exclude group: 'com.android.support', module: 'support-annotations'
4953
}

app/src/main/java/de/jonasrottmann/realmsample/Application.java

+8
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package de.jonasrottmann.realmsample;
22

3+
import com.squareup.leakcanary.LeakCanary;
4+
35
import de.jonasrottmann.realmbrowser.RealmBrowser;
46
import io.realm.Realm;
57
import io.realm.RealmConfiguration;
@@ -12,6 +14,12 @@ public class Application extends android.app.Application {
1214
@Override
1315
public void onCreate() {
1416
super.onCreate();
17+
18+
if (LeakCanary.isInAnalyzerProcess(this)) {
19+
return;
20+
}
21+
LeakCanary.install(this);
22+
1523
Timber.plant(new Timber.DebugTree());
1624

1725
Realm.init(this);

app/src/main/java/de/jonasrottmann/realmsample/MainActivity.java

+20-5
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,28 @@
11
package de.jonasrottmann.realmsample;
22

33
import android.app.Activity;
4+
import android.graphics.Bitmap;
5+
import android.graphics.drawable.BitmapDrawable;
46
import android.os.Bundle;
7+
import android.support.v4.content.ContextCompat;
58
import android.view.View;
69
import android.widget.TextView;
10+
11+
import java.io.ByteArrayOutputStream;
12+
import java.util.ArrayList;
13+
import java.util.Date;
14+
import java.util.List;
15+
import java.util.UUID;
16+
717
import de.jonasrottmann.realmbrowser.RealmBrowser;
818
import de.jonasrottmann.realmsample.data.Address;
919
import de.jonasrottmann.realmsample.data.Contact;
20+
import de.jonasrottmann.realmsample.data.Image;
1021
import de.jonasrottmann.realmsample.data.RealmString;
1122
import de.jonasrottmann.realmsample.data.User;
1223
import io.realm.Realm;
1324
import io.realm.RealmConfiguration;
1425
import io.realm.RealmList;
15-
import java.util.ArrayList;
16-
import java.util.Date;
17-
import java.util.List;
18-
import java.util.UUID;
1926

2027
public class MainActivity extends Activity implements View.OnClickListener {
2128

@@ -82,20 +89,28 @@ public void execute(Realm realm) {
8289
private void insertUsers(int count) {
8390
Realm realm = Realm.getDefaultInstance();
8491

92+
ByteArrayOutputStream stream = new ByteArrayOutputStream();
93+
((BitmapDrawable) ContextCompat.getDrawable(this, R.drawable.beach_mini)).getBitmap().compress(Bitmap.CompressFormat.JPEG, 100, stream);
94+
8595
final List<User> userList = new ArrayList<>();
8696
for (int i = 0; i < count; i++) {
8797
Address address = new Address();
8898
address.setLat(49.8397473);
8999
address.setLon(24.0233077);
90100

101+
Image image = new Image();
102+
image.setId(i);
103+
image.setBytes(stream.toByteArray());
104+
91105
User user = new User();
92106
user.setName(new RealmString("Jon Doe " + i));
93107
user.setIsBlocked(Math.random() > 0.5);
94108
user.setAge(i);
95109
user.setAddress(address);
96110
user.setUuid(UUID.randomUUID().toString());
97-
user.setByteArray(new byte[] { 1, 2, 3 });
111+
user.setByteArray(new byte[]{1, 2, 3});
98112
user.setCreationDate(new Date(System.currentTimeMillis()));
113+
user.setImage(image);
99114

100115
RealmList<RealmString> emailList = new RealmList<>();
101116
for (int k = 0; k < 5; k++) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package de.jonasrottmann.realmsample.data;
2+
3+
import io.realm.RealmObject;
4+
5+
public class Image extends RealmObject {
6+
private int id;
7+
private byte[] bytes;
8+
9+
public int getId() {
10+
return id;
11+
}
12+
13+
public void setId(int id) {
14+
this.id = id;
15+
}
16+
17+
public byte[] getBytes() {
18+
return bytes;
19+
}
20+
21+
public void setBytes(byte[] bytes) {
22+
this.bytes = bytes;
23+
}
24+
}

app/src/main/java/de/jonasrottmann/realmsample/data/User.java

+9-1
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@ public class User implements RealmModel {
2121
private RealmList<Contact> contactList;
2222
private Date creationDate;
2323
private byte[] byteArray;
24+
private Image image;
2425

2526

2627
public void setEmailList(RealmList<RealmString> emailList) {
2728
this.emailList = emailList;
2829
}
2930

30-
3131
public void setAddress(Address address) {
3232
this.address = address;
3333
}
@@ -71,4 +71,12 @@ public Date getCreationDate() {
7171
public void setCreationDate(Date creationDate) {
7272
this.creationDate = creationDate;
7373
}
74+
75+
public Image getImage() {
76+
return image;
77+
}
78+
79+
public void setImage(Image image) {
80+
this.image = image;
81+
}
7482
}
4.51 KB
Loading
Loading
Loading

build.gradle

+2-1
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,13 @@ buildscript {
1111

1212
// plugins
1313
androidGradlePluginVersion = '2.3.1'
14-
realmVersion = '3.1.4'
14+
realmVersion = '3.3.1'
1515
dexcountVersion = '0.6.4'
1616

1717
// dependencies
1818
timberVersion = '4.5.1'
1919
supportLibVersion = '25.3.1'
20+
leakCanaryVersion = '1.5.1'
2021
}
2122

2223
repositories {

realm-browser/src/main/AndroidManifest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<application>
66
<provider
77
android:name=".helper.FileProvider"
8-
android:authorities="de.jonasrottmann.realmbrowser"
8+
android:authorities="${applicationId}.share"
99
android:exported="false"
1010
android:grantUriPermissions="true">
1111
<meta-data

realm-browser/src/main/java/de/jonasrottmann/realmbrowser/RealmBrowser.java

+25-29
Original file line numberDiff line numberDiff line change
@@ -12,48 +12,47 @@
1212
import android.support.annotation.NonNull;
1313
import android.support.annotation.Nullable;
1414
import android.support.v4.app.NotificationCompat;
15+
16+
import java.util.Collections;
17+
1518
import de.jonasrottmann.realmbrowser.files.view.FilesActivity;
16-
import de.jonasrottmann.realmbrowser.helper.RealmHolder;
19+
import de.jonasrottmann.realmbrowser.helper.DataHolder;
1720
import de.jonasrottmann.realmbrowser.models.view.ModelsActivity;
1821
import io.realm.RealmConfiguration;
19-
import java.util.Collections;
2022

23+
@SuppressWarnings({"unused", "WeakerAccess"})
2124
public final class RealmBrowser {
2225

2326
private static final int NOTIFICATION_ID = 1000;
2427

2528
/**
2629
* @param context A valid {@link Context}
2730
*/
28-
@SuppressWarnings("WeakerAccess")
2931
public static void startRealmFilesActivity(@NonNull Context context) {
3032
context.startActivity(FilesActivity.getIntent(context));
3133
}
3234

3335
/**
34-
* @param context A valid {@link Context}
36+
* @param context A valid {@link Context}
3537
* @param realmFileName The name of the realm file to open.
3638
*/
37-
@SuppressWarnings("WeakerAccess")
3839
public static void startRealmModelsActivity(@NonNull Context context, @NonNull String realmFileName) {
3940
RealmConfiguration config = new RealmConfiguration.Builder().name(realmFileName).build();
4041
startRealmModelsActivity(context, config);
4142
}
4243

4344
/**
44-
* @param context A valid {@link Context}
45+
* @param context A valid {@link Context}
4546
* @param realmConfiguration The config of the realm to open.
4647
*/
47-
@SuppressWarnings("WeakerAccess")
4848
public static void startRealmModelsActivity(@NonNull Context context, @NonNull RealmConfiguration realmConfiguration) {
49-
RealmHolder.getInstance().setRealmConfiguration(realmConfiguration);
49+
DataHolder.getInstance().save(DataHolder.DATA_HOLDER_KEY_CONFIG, realmConfiguration);
5050
context.startActivity(ModelsActivity.getIntent(context));
5151
}
5252

5353
/**
5454
* @param context A valid {@link Context}
5555
*/
56-
@SuppressWarnings("WeakerAccess")
5756
public static void showRealmFilesNotification(@NonNull Context context) {
5857
Intent notifyIntent = new Intent(context, FilesActivity.class);
5958
notifyIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
@@ -62,22 +61,21 @@ public static void showRealmFilesNotification(@NonNull Context context) {
6261
}
6362

6463
/**
65-
* @param context A valid {@link Context}
64+
* @param context A valid {@link Context}
6665
* @param realmConfiguration The config of the realm to open.
6766
*/
68-
@SuppressWarnings("WeakerAccess")
6967
public static void showRealmModelsNotification(@NonNull Context context, @NonNull RealmConfiguration realmConfiguration) {
70-
RealmHolder.getInstance().setRealmConfiguration(realmConfiguration);
68+
DataHolder.getInstance().save(DataHolder.DATA_HOLDER_KEY_CONFIG, realmConfiguration);
7169
Intent notifyIntent = ModelsActivity.getIntent(context);
7270
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, notifyIntent, PendingIntent.FLAG_UPDATE_CURRENT);
7371
showNotification(context, pendingIntent);
7472
}
7573

7674
private static void showNotification(@NonNull Context context, @NonNull PendingIntent pendingIntent) {
7775
NotificationCompat.Builder builder = new NotificationCompat.Builder(context).setSmallIcon(R.drawable.realm_browser_ic_rb)
78-
.setContentTitle(context.getString(R.string.realm_browser_title))
79-
.setContentText(context.getApplicationContext().getPackageName())
80-
.setAutoCancel(false);
76+
.setContentTitle(context.getString(R.string.realm_browser_title))
77+
.setContentText(context.getApplicationContext().getPackageName())
78+
.setAutoCancel(false);
8179

8280
builder.setContentIntent(pendingIntent);
8381
NotificationManager mNotificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
@@ -89,17 +87,16 @@ private static void showNotification(@NonNull Context context, @NonNull PendingI
8987
* @return The id of the added shortcut (<code>null</code> if this feature is not supported on the device). Is used if you want to remove this shortcut later on.
9088
*/
9189
@TargetApi(Build.VERSION_CODES.N_MR1)
92-
@SuppressWarnings("WeakerAccess")
9390
@Nullable
9491
public static String addFilesShortcut(@NonNull Context context) {
9592
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
9693
final String id = "realm_browser_ac_files";
9794
final ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
9895
final ShortcutInfo shortcut = new ShortcutInfo.Builder(context, id).setShortLabel("Files")
99-
.setLongLabel("Open realm-browser files activity")
100-
.setIcon(Icon.createWithResource(context, R.drawable.realm_browser_shortcut_rb))
101-
.setIntent(FilesActivity.getIntent(context).setAction(Intent.ACTION_VIEW))
102-
.build();
96+
.setLongLabel("Open realm-browser files activity")
97+
.setIcon(Icon.createWithResource(context, R.drawable.realm_browser_shortcut_rb))
98+
.setIntent(FilesActivity.getIntent(context).setAction(Intent.ACTION_VIEW))
99+
.build();
103100
shortcutManager.addDynamicShortcuts(Collections.singletonList(shortcut));
104101
return id;
105102
} else {
@@ -108,25 +105,24 @@ public static String addFilesShortcut(@NonNull Context context) {
108105
}
109106

110107
/**
111-
* @param context A valid {@link Context}
108+
* @param context A valid {@link Context}
112109
* @param realmConfiguration The config of the realm to open.
113110
* @return The id of the added shortcut (<code>null</code> if this feature is not supported on the device). Is used if you want to remove this shortcut later on.
114111
*/
115112
@TargetApi(Build.VERSION_CODES.N_MR1)
116-
@SuppressWarnings("WeakerAccess")
117113
@Nullable
118114
public static String addModelsShortcut(@NonNull Context context, @NonNull RealmConfiguration realmConfiguration) {
119115
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
120-
RealmHolder.getInstance().setRealmConfiguration(realmConfiguration);
116+
DataHolder.getInstance().save(DataHolder.DATA_HOLDER_KEY_CONFIG, realmConfiguration);
121117
final String id = "realm_browser_ac_models";
122118
final ShortcutManager shortcutManager = context.getSystemService(ShortcutManager.class);
123119
final ShortcutInfo shortcut = new ShortcutInfo.Builder(context, id).setShortLabel("Models")
124-
.setLongLabel("Open realm-browser models activity")
125-
.setIcon(Icon.createWithResource(context, R.drawable.realm_browser_shortcut_rb))
126-
.setIntents(new Intent[] {
127-
FilesActivity.getIntent(context).setAction(Intent.ACTION_VIEW), ModelsActivity.getIntent(context).setAction(Intent.ACTION_VIEW)
128-
})
129-
.build();
120+
.setLongLabel("Open realm-browser models activity")
121+
.setIcon(Icon.createWithResource(context, R.drawable.realm_browser_shortcut_rb))
122+
.setIntents(new Intent[]{
123+
FilesActivity.getIntent(context).setAction(Intent.ACTION_VIEW), ModelsActivity.getIntent(context).setAction(Intent.ACTION_VIEW)
124+
})
125+
.build();
130126
shortcutManager.addDynamicShortcuts(Collections.singletonList(shortcut));
131127
return id;
132128
} else {

0 commit comments

Comments
 (0)