Skip to content

Instantly share code, notes, and snippets.

View hanihashemi's full-sized avatar
🥶
Cold as ice

Hani hanihashemi

🥶
Cold as ice
  • Delivery Hero
  • Berlin, Germany
View GitHub Profile
import androidx.compose.animation.core.LinearOutSlowInEasing
import androidx.compose.animation.core.animateDpAsState
import androidx.compose.animation.core.animateFloatAsState
import androidx.compose.animation.core.tween
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.offset
@hanihashemi
hanihashemi / IconButton.kt
Created August 24, 2018 01:53
IconButton for Android
import android.content.Context
import android.graphics.drawable.Drawable
import android.support.annotation.ColorInt
import android.support.v7.widget.LinearLayoutCompat
import android.util.AttributeSet
import android.view.Gravity
import android.widget.ImageView
import android.widget.LinearLayout
import android.widget.TextView
@hanihashemi
hanihashemi / RoomFloatListTypeConverter.kt
Created August 11, 2018 12:27
Room FloatList converter
import android.arch.persistence.room.TypeConverter
class FloatConverter {
@TypeConverter
fun stringToListOfFloat(value: String): List<Float> {
return value.split(",").map { it.toFloat() }
}
@TypeConverter
fun listOfFloatToString(list: List<Float>): String {
@hanihashemi
hanihashemi / AndroidTextUtilsMockTest.java
Created March 31, 2017 18:02
Mock Android TextUtils
import android.text.TextUtils;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.when;
@hanihashemi
hanihashemi / Distance Calculator
Last active December 8, 2016 14:30
Calculating distance between two points, using latitude and longitude
/**
* Created by hani on 12/6/16.
*/
public class DistanceCalculator {
public String distance(double lat1, double lon1, double lat2, double lon2) {
double theta = lon1 - lon2;
Double dist = Math.sin(deg2rad(lat1)) * Math.sin(deg2rad(lat2)) + Math.cos(deg2rad(lat1)) * Math.cos(deg2rad(lat2)) * Math.cos(deg2rad(theta));
dist = Math.acos(dist);
dist = rad2deg(dist);
/**
* Created by Elijah Saounkine
* Modified by Hani
*/
public class NumbersAbbreviationHelper {
private char[] c = new char[]{'K', 'M', 'B', 'T'};
public String makeItFriendly(double n) {
return makeItFriendly(n, 0);
@hanihashemi
hanihashemi / DisableVolleyRetryPolicy.java
Created November 24, 2015 12:18
Disable Volley retry request :D
// usage: req.setRetryPolicy(new VolleyRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 4, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
public class VolleyRetryPolicy extends DefaultRetryPolicy {
public VolleyRetryPolicy(int initialTimeoutMs, int maxNumRetries, float backoffMultiplier) {
super(initialTimeoutMs, maxNumRetries, backoffMultiplier);
}
@Override
protected boolean hasAttemptRemaining() {
@hanihashemi
hanihashemi / HeightResizableLinearLayoutManager.java
Last active September 8, 2015 10:24
Android HeightResizableLinearLayoutManager
package com.oostaa.app.widgets;
import android.content.Context;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import java.util.List;