Workaround for LGE-related NPEs
See: https://code.google.com/p/android/issues/detail?id=78154 Fixes #2424 Closes #2428 // FREEBIEpull/1/head
parent
8aa0f15740
commit
f092e85b62
@ -0,0 +1,22 @@
|
||||
package org.thoughtcrime.securesms;
|
||||
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v7.app.ActionBarActivity;
|
||||
import android.view.KeyEvent;
|
||||
|
||||
|
||||
public abstract class BaseActionBarActivity extends ActionBarActivity {
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
return BaseActivity.isKeyCodeWorkaroundRequired(keyCode) || super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) {
|
||||
if (BaseActivity.isKeyCodeWorkaroundRequired(keyCode)) {
|
||||
openOptionsMenu();
|
||||
return true;
|
||||
}
|
||||
return super.onKeyUp(keyCode, event);
|
||||
}
|
||||
}
|
@ -0,0 +1,28 @@
|
||||
package org.thoughtcrime.securesms;
|
||||
|
||||
import android.os.Build;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.v4.app.FragmentActivity;
|
||||
import android.view.KeyEvent;
|
||||
|
||||
public abstract class BaseActivity extends FragmentActivity {
|
||||
@Override
|
||||
public boolean onKeyDown(int keyCode, KeyEvent event) {
|
||||
return isKeyCodeWorkaroundRequired(keyCode) || super.onKeyDown(keyCode, event);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean onKeyUp(int keyCode, @NonNull KeyEvent event) {
|
||||
if (isKeyCodeWorkaroundRequired(keyCode)) {
|
||||
openOptionsMenu();
|
||||
return true;
|
||||
}
|
||||
return super.onKeyUp(keyCode, event);
|
||||
}
|
||||
|
||||
public static boolean isKeyCodeWorkaroundRequired(int keyCode) {
|
||||
return (keyCode == KeyEvent.KEYCODE_MENU) &&
|
||||
(Build.VERSION.SDK_INT == 16) &&
|
||||
("LGE".equalsIgnoreCase(Build.MANUFACTURER));
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue