Skip to content

Commit 0f3fdba

Browse files
Merge pull request #13 from jonasrottmann/develop
Prepared 0.0.11 release
2 parents e7522b3 + b341c14 commit 0f3fdba

10 files changed

+88
-13
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.10'
31-
testCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.10'
32-
releaseCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.10'
30+
debugCompile 'com.github.jonasrottmann.realm-browser:realm-browser:0.0.11'
31+
testCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.11'
32+
releaseCompile 'com.github.jonasrottmann.realm-browser:realm-browser-no-op:0.0.11'
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.10') {
40+
debugCompile ('com.github.jonasrottmann.realm-browser:realm-browser:0.0.11') {
4141
exclude group: 'com.android.support';
4242
}
4343
}

realm-browser/src/main/AndroidManifest.xml

+15-5
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,36 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3-
package="de.jonasrottmann.realmbrowser">
3+
package="de.jonasrottmann.realmbrowser">
44

55
<application>
6+
<provider
7+
android:name="android.support.v4.content.FileProvider"
8+
android:authorities="de.jonasrottmann.realmbrowser"
9+
android:exported="false"
10+
android:grantUriPermissions="true">
11+
<meta-data
12+
android:name="android.support.FILE_PROVIDER_PATHS"
13+
android:resource="@xml/realm_browser_filepaths"/>
14+
</provider>
15+
616
<activity
717
android:name=".models.view.ModelsActivity"
818
android:label="@string/realm_browser_title"
9-
android:theme="@style/realm_browser_BaseTheme.Theme" />
19+
android:theme="@style/realm_browser_BaseTheme.Theme"/>
1020
<activity
1121
android:name=".object.view.RealmObjectActivity"
1222
android:label="@string/realm_browser_title"
1323
android:theme="@style/realm_browser_BaseTheme.Theme"
14-
android:windowSoftInputMode="adjustResize" />
24+
android:windowSoftInputMode="adjustResize"/>
1525
<activity
1626
android:name=".browser.view.RealmBrowserActivity"
1727
android:label="@string/realm_browser_title"
18-
android:theme="@style/realm_browser_BaseTheme.DrawerTheme" />
28+
android:theme="@style/realm_browser_BaseTheme.DrawerTheme"/>
1929

2030
<activity
2131
android:name=".files.view.FilesActivity"
2232
android:label="@string/realm_browser_title"
23-
android:theme="@style/realm_browser_BaseTheme.Theme" />
33+
android:theme="@style/realm_browser_BaseTheme.Theme"/>
2434

2535
</application>
2636

realm-browser/src/main/java/de/jonasrottmann/realmbrowser/models/ModelsContract.java

+8
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ interface View extends BaseView<Presenter> {
2828
void updateWithModels(@NonNull ArrayList<ModelPojo> filesList, @SortMode int sortMode);
2929

3030
Context getViewContext();
31+
32+
void presentShareDialog(@NonNull String path);
3133
}
3234

3335
interface Presenter extends BasePresenter<View> {
@@ -37,9 +39,13 @@ interface Presenter extends BasePresenter<View> {
3739

3840
void onSortModeChanged();
3941

42+
void onShareSelected();
43+
4044
void onFilterChanged(@NonNull String filter);
4145

4246
void updateWithModels(@NonNull ArrayList<ModelPojo> modelsList, @SortMode int sortMode);
47+
48+
void presentShareDialog(@NonNull String path);
4349
}
4450

4551
interface Interactor extends BaseInteractor {
@@ -48,5 +54,7 @@ interface Interactor extends BaseInteractor {
4854
void updateWithFilter(String filter);
4955

5056
void updateWithSortModeChanged();
57+
58+
void onShareSelected();
5159
}
5260
}

realm-browser/src/main/java/de/jonasrottmann/realmbrowser/models/ModelsInteractor.java

+5
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ public void updateWithSortModeChanged() {
4242
this.sortMode = (this.sortMode + 1) % 2;
4343
requestForContentUpdate();
4444
}
45+
46+
@Override
47+
public void onShareSelected() {
48+
getPresenter().presentShareDialog(RealmHolder.getInstance().getRealmConfiguration().getPath());
49+
}
4550
//endregion
4651

4752
//region Helper

realm-browser/src/main/java/de/jonasrottmann/realmbrowser/models/ModelsPresenter.java

+13
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ public void onModelSelected(ModelPojo item) {
4040
RealmBrowserActivity.start(getView().getViewContext(), item.getKlass());
4141
}
4242
}
43+
44+
@Override
45+
public void onShareSelected() {
46+
interactor.onShareSelected();
47+
}
4348
//endregion
4449

4550
//region InteractorOutput
@@ -50,5 +55,13 @@ public void updateWithModels(@NonNull ArrayList<ModelPojo> modelsList, @ModelsCo
5055
getView().updateWithModels(modelsList, sortMode);
5156
}
5257
}
58+
59+
@Override
60+
public void presentShareDialog(@NonNull String path) {
61+
if (isViewAttached()) {
62+
//noinspection ConstantConditions
63+
getView().presentShareDialog(path);
64+
}
65+
}
5366
//endregion
5467
}

realm-browser/src/main/java/de/jonasrottmann/realmbrowser/models/view/ModelsActivity.java

+20-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22

33
import android.content.Context;
44
import android.content.Intent;
5+
import android.net.Uri;
56
import android.os.Bundle;
67
import android.support.annotation.NonNull;
78
import android.support.annotation.Nullable;
89
import android.support.annotation.RestrictTo;
910
import android.support.v4.content.ContextCompat;
11+
import android.support.v4.content.FileProvider;
1012
import android.support.v4.widget.SwipeRefreshLayout;
1113
import android.support.v7.app.AppCompatActivity;
1214
import android.support.v7.widget.LinearLayoutManager;
@@ -16,11 +18,15 @@
1618
import android.view.Menu;
1719
import android.view.MenuInflater;
1820
import android.view.MenuItem;
21+
22+
import java.io.File;
23+
import java.util.ArrayList;
24+
1925
import de.jonasrottmann.realmbrowser.R;
26+
import de.jonasrottmann.realmbrowser.helper.RealmHolder;
2027
import de.jonasrottmann.realmbrowser.models.ModelsContract;
2128
import de.jonasrottmann.realmbrowser.models.ModelsPresenter;
2229
import de.jonasrottmann.realmbrowser.models.model.ModelPojo;
23-
import java.util.ArrayList;
2430

2531
@RestrictTo(RestrictTo.Scope.LIBRARY_GROUP)
2632
public class ModelsActivity extends AppCompatActivity implements ModelsContract.View, SearchView.OnQueryTextListener {
@@ -113,6 +119,9 @@ public boolean onOptionsItemSelected(MenuItem item) {
113119
if (item.getItemId() == R.id.realm_browser_action_sort) {
114120
presenter.onSortModeChanged();
115121
return true;
122+
} else if (item.getItemId() == R.id.realm_browser_action_share) {
123+
presenter.onShareSelected();
124+
return true;
116125
} else {
117126
return super.onOptionsItemSelected(item);
118127
}
@@ -145,6 +154,16 @@ public void attachPresenter(@Nullable ModelsContract.Presenter presenter) {
145154
this.presenter.attachView(this);
146155
}
147156

157+
@Override
158+
public void presentShareDialog(@NonNull String path) {
159+
Uri contentUri = FileProvider.getUriForFile(this, "de.jonasrottmann.realmbrowser", new File(RealmHolder.getInstance().getRealmConfiguration().getPath()));
160+
Intent intentShareFile = new Intent(Intent.ACTION_SEND);
161+
intentShareFile.setType("application/*");
162+
intentShareFile.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
163+
intentShareFile.putExtra(Intent.EXTRA_STREAM, contentUri);
164+
startActivity(Intent.createChooser(intentShareFile, "Share Realm File"));
165+
}
166+
148167
@Override
149168
protected void onDestroy() {
150169
super.onDestroy();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<vector xmlns:android="http://schemas.android.com/apk/res/android"
2+
android:width="24dp"
3+
android:height="24dp"
4+
android:viewportHeight="24"
5+
android:viewportWidth="24">
6+
<path
7+
android:fillColor="#fff"
8+
android:pathData="M21,11L14,4V8C7,9 4,14 3,19C5.5,15.5 9,13.9 14,13.9V18L21,11Z"/>
9+
</vector>
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,24 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<menu xmlns:android="http://schemas.android.com/apk/res/android"
3-
xmlns:app="http://schemas.android.com/apk/res-auto">
3+
xmlns:app="http://schemas.android.com/apk/res-auto">
44

55
<item
66
android:id="@+id/realm_browser_action_filter"
77
android:icon="@drawable/realm_browser_ic_search_white_24dp"
88
android:title="@string/realm_browser_action_filter"
99
app:actionViewClass="android.support.v7.widget.SearchView"
10-
app:showAsAction="ifRoom" />
10+
app:showAsAction="ifRoom"/>
1111

1212
<item
1313
android:id="@+id/realm_browser_action_sort"
1414
android:icon="@drawable/realm_browser_ic_sort_ascending_white_24dp"
1515
android:title="Sort"
16-
app:showAsAction="always" />
16+
app:showAsAction="always"/>
17+
18+
<item
19+
android:id="@+id/realm_browser_action_share"
20+
android:icon="@drawable/realm_browser_ic_share_white_24dp"
21+
android:title="Share Realm File"
22+
app:showAsAction="always"/>
23+
1724
</menu>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<paths xmlns:android="http://schemas.android.com/apk/res/android">
3+
<files-path name="files" path="/"/>
4+
</paths>

screenshots/models.png

219 Bytes
Loading

0 commit comments

Comments
 (0)