Skip to content

Instantly share code, notes, and snippets.

View truedem's full-sized avatar

Pavel Kuznetsov truedem

View GitHub Profile
@truedem
truedem / ActivityMain.java
Last active September 22, 2015 14:58
Static context in Android
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
staticMethod();
}
public static void staticMethod() {
Context context = ApplicationBase.getContext();
}
@truedem
truedem / AdapterRecycler.java
Created November 2, 2015 15:49
AdapterRecycler.java with multiple click listeners
package pk.minitodo.base;
/**
* Created by PK on 11.10.2015.
*/
import android.content.Context;
import android.content.res.Resources;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
@truedem
truedem / AndroidRealmSnippets
Last active July 31, 2016 16:35
Common operations for Realm in Android
// check if Realm db exist
RealmConfiguration config = getConfig();
if (new File(config.getPath()).exists()) {
// exists
} else {
// don't exists
}
// check if Realm is closed
if(realm.isClosed()) {
@truedem
truedem / AndroidFragmentBackStack
Created August 3, 2016 21:26
Activity code for backstack operations with fragments
public class MainActivity extends BaseActivity implements FragmentManager.OnBackStackChangedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
getSupportFragmentManager().addOnBackStackChangedListener(this);
@truedem
truedem / InternetAvailability
Created August 3, 2016 21:28
Android code to check if both network and Internet connections are available
public static boolean isNetworkAvailable() {
// ConnectivityManager connectivityManager = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
ConnectivityManager connectivityManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
@truedem
truedem / AndroidDisplayMetrics
Last active August 21, 2016 17:53
Android display metrics in DP and pixels
DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics();
float dpHeight = displayMetrics.heightPixels / displayMetrics.density;
float dpWidth = displayMetrics.widthPixels / displayMetrics.density;
// variant, API 17+
Display display = context.getWindowManager().getDefaultDisplay();
DisplayMetrics realMetrics = new DisplayMetrics();
display.getRealMetrics(realMetrics);
float realWidth = realMetrics.widthPixels / realMetrics.density;
float realHeight = realMetrics.heightPixels / realMetrics.density;
@truedem
truedem / gist:804401024f470c9749b9ba240092748a
Created September 11, 2016 17:54
Check if an app is running in Android
// packageName = "com.example.yourapp"
public Boolean isAppRunning(String packageName) {
ActivityManager activityManager = (ActivityManager) this.getSystemService(ACTIVITY_SERVICE); // this = context
List<RunningAppProcessInfo> procInfos = activityManager.getRunningAppProcesses();
for(int i = 0; i < procInfos.size(); i++) {
if(procInfos.get(i).processName.equals(packageName)) {
// Toast.makeText(getApplicationContext(), "App " + packageName + " is running", Toast.LENGTH_LONG).show();
return true;
}
}
@truedem
truedem / tls12ForAndroid4.java
Created October 4, 2016 18:44
Installation of TLS 1.2 on Android 4.* devices
try {
SSLContext.getInstance("TLSv1.2");
ProviderInstaller.installIfNeeded(this);
} catch (GooglePlayServicesRepairableException e) {
// Thrown when Google Play Services is not installed, up-to-date, or enabled
// Show dialog to allow users to install, update, or otherwise enable Google Play services.
GooglePlayServicesUtil.getErrorDialog(e.getConnectionStatusCode(), (Activity) context, 0);
} catch (GooglePlayServicesNotAvailableException e) {
Log.e("SecurityException", "Google Play Services not available.");
} catch (Exception e) {
@truedem
truedem / gist:7781529841209ada6bae351390328a2a
Last active November 1, 2016 04:46
Delayed AdMob interstitial request to prevent ANR
content.postDelayed(new Runnable() {
@Override
public void run() {
if ((Build.VERSION.SDK_INT >= 17 && LWQSettingsActivity.this.isDestroyed()) || LWQSettingsActivity.this.isFinishing()) {
return;
}
requestNewInterstitial();
}
}, 1000);
@truedem
truedem / rxjava_throttle_notfirst.java
Created May 27, 2017 10:03
Throttle not first item in RxJava Observable
// https://github.com/ReactiveX/RxJava/issues/1323#issuecomment-45149897
// thank you, akarnokd !
public class ThrottleNotFirst {
public static void main(String[] args) throws Exception {
for (int firstWait = 0; firstWait < 2; firstWait++) {
PublishSubject<String> source = PublishSubject.create();
PublishSubject<Observable<String>> immediates = PublishSubject.create();