Skip to content

Instantly share code, notes, and snippets.

View erfanegtfi's full-sized avatar

Erfan Eghterafi erfanegtfi

  • Iran
View GitHub Profile
float radius = context.getResources().getDimension(R.dimen.border_radius_hug);
shapeAppearanceModel = new ShapeAppearanceModel()
.toBuilder()
.setAllCorners(CornerFamily.ROUNDED,radius)
.build();
imageView.setShapeAppearanceModel(shapeAppearanceModel)
{
"_id": "5eb65d5a44459aedbfba12de",
"index": 0,
"guid": "720089b7-6999-40d6-ab60-cca019e88b6b",
"isActive": false,
"balance": "$2,261.61",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "green",
"name": "Horn Cash",
@erfanegtfi
erfanegtfi / rrrr.java
Created May 9, 2020 07:46
apiasdasdf
[
{
"_id": "5eb65d5a44459aedbfba12de",
"index": 0,
"guid": "720089b7-6999-40d6-ab60-cca019e88b6b",
"isActive": false,
"balance": "$2,261.61",
"picture": "http://placehold.it/32x32",
"age": 28,
"eyeColor": "green",
@erfanegtfi
erfanegtfi / socialNetwork.java
Last active May 9, 2020 07:46
open on social network
public static void openInsagram(String channelName, Activity act) {
Uri uri = Uri.parse("http://instagram.com/_u/" + channelName);
Intent likeIng = new Intent(Intent.ACTION_VIEW, uri);
likeIng.setPackage("com.instagram.android");
try {
act.startActivity(likeIng);
} catch (ActivityNotFoundException e) {
act.startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://instagram.com/" + channelName)));
}
}
public class MyFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// This callback will only be called when MyFragment is at least Started.
OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
@Override
public void handleOnBackPressed() {
@erfanegtfi
erfanegtfi / MyFragment.java
Created May 4, 2020 20:51
OnBackPressedCallback
public class MyFragment extends Fragment {
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// This callback will only be called when MyFragment is at least Started.
OnBackPressedCallback callback = new OnBackPressedCallback(true /* enabled by default */) {
@Override
public void handleOnBackPressed() {
@erfanegtfi
erfanegtfi / KeepStateNavigator
Created April 16, 2020 21:04
keep state of fragments inside fragment navigation. (use add/hide or attach/detach instead of replace)
import android.content.Context;
import android.os.Bundle;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import androidx.navigation.NavDestination;
import androidx.navigation.NavOptions;
@erfanegtfi
erfanegtfi / LiveDataList
Created April 16, 2020 20:57
observe on list events add, remove ...
public class LiveDataList<T> extends LiveData<List<T>> {
public void addAll(List<T> items) {
if (getValue() != null && items != null) {
getValue().addAll(items);
setValue(getValue());
}
}
public void clear() {
if (getValue() != null) {
@erfanegtfi
erfanegtfi / ObservableRxList
Last active April 16, 2020 20:56
Observe on list events, addAll, add, remove, update
public class ObservableRxList<T> {
protected final List<T> list;
protected final PublishSubject<List<T>> subject;
public ObservableRxList() {
this.list = new ArrayList<T>();
this.subject = PublishSubject.create();
}
public void add(T value) {
@erfanegtfi
erfanegtfi / encode_decode.java
Created April 13, 2018 12:28
base64 Encode
public String encode(String s, String key) {
if (s != null)
return base64Encode(xorWithKey(s.getBytes(), key.getBytes()));
else
return null;
}
public String decode(String s, String key) {
if (s != null)
return new String(xorWithKey(base64Decode(s), key.getBytes()));