Last active
September 3, 2016 16:53
-
-
Save Zhuinden/e917936103c62146183fe770bdb9907d to your computer and use it in GitHub Desktop.
Realm detail view start (Activity)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class NewsActivity extends AppCompatActivity { | |
// ... | |
private RealmChangeListener<RealmResults<NewsPost>> realmChangeListener; | |
private RealmResults<NewsPost> listenerSet; | |
private long postId; | |
private Realm realm; | |
@Override | |
protected void onCreate(Bundle bundle) { | |
super.onCreate(bundle); | |
Injector.get().inject(this); | |
postId = getIntent().getLongExtra("postId"); | |
setContentView(R.layout.activity_news); | |
ButterKnife.bind(this); | |
realm = RealmManager.getRealm(); | |
realmChangeListener = new RealmChangeListener<RealmResults<NewsPost>>() { | |
@Override | |
public void onChange(RealmResults<NewsPost> element) { | |
NewsPost newsPost = realm.where(NewsPost.class) | |
.equalTo(NewsPostFields.ID, postId) | |
.findFirst(); | |
if(newsPost != null) { // if news post was downloaded on background thread, initalize view | |
initView(newsPost); | |
} | |
} | |
}; | |
listenerSet = realm.where(NewsPost.class) | |
.findAll(); | |
listenerSet.addChangeListener(realmChangeListener); // listen to changes in `NewsPost` table | |
NewsPost newsPost = realm.where(NewsPost.class) | |
.equalTo(NewsPostFields.ID, postId) | |
.findFirst(); | |
if(newsPost == null) { | |
// download news post if not available | |
getNewsPostInteractor.getNewsPost(postId); | |
} else { | |
initView(newsPost); | |
} | |
} | |
private void initView(NewsPost newsPost) { | |
// set views | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment