Skip to content

Instantly share code, notes, and snippets.

View iammert's full-sized avatar
🎧
Focusing

Mert Şimşek iammert

🎧
Focusing
View GitHub Profile
public class DataProvider {
public static List<Person> getOldPersonList(){
List<Person> persons = new ArrayList<>();
persons.add(new Person(1, 20, "John"));
persons.add(new Person(2, 12, "Jack"));
persons.add(new Person(3, 8, "Michael"));
persons.add(new Person(4, 19, "Rafael"));
return persons;
}
@iammert
iammert / BottomBackStackController.kt
Last active December 19, 2023 19:50
Multiple Back Stack Controller + Navigation Component (Instagram-like backstack)
import androidx.fragment.app.FragmentManager
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
import com.google.android.material.bottomnavigation.BottomNavigationView
import java.util.Stack
import kotlin.collections.HashMap
class BottomBackStackController {
public final class RawCertificatePinner implements OkHttpCertificatePinner{
private static final String CERTIFICATE_TYPE = "BKS";
private static final String DEFAULT_TLS_VERSION = "TLSv1.2";
private final Context context;
@RawRes
private final int certificate;
private final String certificatePassword;
@iammert
iammert / NewIntentProcessor.java
Created May 9, 2017 08:24
NewIntentProcessor
public class NewIntentProcessor extends AbstractProcessor {
private static final String METHOD_PREFIX = "start";
private static final ClassName classIntent = ClassName.get("android.content", "Intent");
private static final ClassName classContext = ClassName.get("android.content", "Context");
private Filer filer;
private Messager messager;
private Elements elements;
private Map<String, String> activitiesWithPackage;
@iammert
iammert / callback.kt
Last active January 10, 2021 15:55
croutine_intro
api.fetchUser(object: Callback{
fun onResponse(userInfo: UserInfo){
userTextView.text = userInfo.name
}
})
public class FileUtil {
public static File getPickedPictureFile(Context context, Uri selectedImage) {
final boolean isKitKat = Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT;
// DocumentProvider
if (isKitKat && DocumentsContract.isDocumentUri(context, selectedImage)) {
// ExternalStorageProvider
if (isExternalStorageDocument(selectedImage)) {
public void updateList(ArrayList<Person> newList) {
DiffUtil.DiffResult diffResult = DiffUtil.calculateDiff(new MyDiffCallback(this.persons, newList));
diffResult.dispatchUpdatesTo(this);
}
@iammert
iammert / NetworkBoundSource.java
Created July 11, 2017 08:31
NetworkBoundSource.java
public abstract class NetworkBoundSource<LocalType, RemoteType> {
public NetworkBoundSource(FlowableEmitter<Resource<LocalType>> emitter) {
Disposable firstDataDisposable = getLocal()
.map(Resource::loading)
.subscribe(emitter::onNext);
getRemote().map(mapper())
.subscribeOn(Schedulers.newThread())
.observeOn(Schedulers.newThread())
@iammert
iammert / dependency.gradle
Last active August 27, 2019 06:46
dependency.gradle
//Room
archComponentVersion = "1.0.0-alpha3"
archRoom = "android.arch.persistence.room:runtime:$archComponentVersion"
archRoomCompiler = "android.arch.persistence.room:compiler:$archComponentVersion"
archRoomRx = "android.arch.persistence.room:rxjava2:$archComponentVersion"
archLifeCycleReactiveStreams = "android.arch.lifecycle:reactivestreams:$archComponentVersion"
//RxJava & RxAndroid
public class MyDiffCallback extends DiffUtil.Callback{
List<Person> oldPersons;
List<Person> newPersons;
public MyDiffCallback(List<Person> newPersons, List<Person> oldPersons) {
this.newPersons = newPersons;
this.oldPersons = oldPersons;
}