Fixed AppIntro, renamed some strings.
This commit is contained in:
parent
1a66c9e135
commit
82642ce94a
24 changed files with 104 additions and 43 deletions
|
|
@ -35,4 +35,9 @@ public class IntroActivity extends AppIntro {
|
|||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onBackPressed() {
|
||||
previous();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,6 +74,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
|||
implements KabViewsDisableAble, CabHolder, DrawerLayout.DrawerListener {
|
||||
|
||||
public static final String TAG = MainActivity.class.getSimpleName();
|
||||
public static final int APP_INTRO_REQUEST = 100;
|
||||
|
||||
@Bind(R.id.toolbar)
|
||||
Toolbar toolbar;
|
||||
|
|
@ -118,14 +119,26 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
|||
checkChangelog();
|
||||
|
||||
PreferenceUtil.getInstance(this).incrementAppOpenCount();
|
||||
if (PreferenceUtil.getInstance(MainActivity.this).getAppOpenCount() == 1) {
|
||||
if (PreferenceUtil.getInstance(this).getAppOpenCount() == 1) {
|
||||
// let the app intro handle getting the permissions first
|
||||
introActivityHandlingPermissions = true;
|
||||
new Thread(new Runnable() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
startActivity(new Intent(MainActivity.this, IntroActivity.class));
|
||||
startActivityForResult(new Intent(MainActivity.this, IntroActivity.class), APP_INTRO_REQUEST);
|
||||
}
|
||||
}).start();
|
||||
}, 200);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
if (requestCode == APP_INTRO_REQUEST) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
// app intro is done, recreate to refresh permissions
|
||||
onPermissionsChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -343,7 +356,7 @@ public class MainActivity extends AbsSlidingMusicPanelActivity
|
|||
menu.add(0, R.id.action_new_playlist, 0, R.string.new_playlist_title);
|
||||
}
|
||||
Fragment currentFragment = getCurrentFragment();
|
||||
if (currentFragment instanceof AbsMainActivityRecyclerViewCustomGridSizeFragment) {
|
||||
if (currentFragment instanceof AbsMainActivityRecyclerViewCustomGridSizeFragment && currentFragment.isAdded()) {
|
||||
AbsMainActivityRecyclerViewCustomGridSizeFragment absMainActivityRecyclerViewCustomGridSizeFragment = (AbsMainActivityRecyclerViewCustomGridSizeFragment) currentFragment;
|
||||
|
||||
MenuItem gridSizeItem = menu.findItem(R.id.action_grid_size);
|
||||
|
|
|
|||
|
|
@ -25,6 +25,9 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
|
||||
private boolean createdWithPermissionsGranted;
|
||||
private String[] permissions;
|
||||
private String permissionDeniedMessage;
|
||||
|
||||
private Snackbar goToPermissionsSnackbar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
|
|
@ -33,6 +36,16 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
|
||||
permissions = getPermissionsToRequest();
|
||||
createdWithPermissionsGranted = hasPermissions();
|
||||
|
||||
setPermissionDeniedMessage(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onPostCreate(@Nullable Bundle savedInstanceState) {
|
||||
super.onPostCreate(savedInstanceState);
|
||||
if (!hasPermissions()) {
|
||||
requestPermissions();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -40,19 +53,27 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
super.onResume();
|
||||
enableViews();
|
||||
|
||||
if (!hasPermissions()) {
|
||||
requestPermissions();
|
||||
} else if (!createdWithPermissionsGranted) {
|
||||
// the handler is necessary to avoid "java.lang.RuntimeException: Performing pause of activity that is not resumed"
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
recreate();
|
||||
}
|
||||
}, 200);
|
||||
if (hasPermissions() != createdWithPermissionsGranted) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
// the handler is necessary to avoid "java.lang.RuntimeException: Performing pause of activity that is not resumed"
|
||||
onPermissionsChanged();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected void onPermissionsChanged() {
|
||||
postRecreate();
|
||||
}
|
||||
|
||||
protected void postRecreate() {
|
||||
new Handler().postDelayed(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
recreate();
|
||||
}
|
||||
}, 200);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
|
||||
if (event.getKeyCode() == KeyEvent.KEYCODE_MENU && event.getAction() == KeyEvent.ACTION_UP) {
|
||||
|
|
@ -96,6 +117,17 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
return null;
|
||||
}
|
||||
|
||||
protected void setPermissionDeniedMessage(String message) {
|
||||
if (message == null) {
|
||||
permissionDeniedMessage = getString(R.string.permissions_denied);
|
||||
} else {
|
||||
permissionDeniedMessage = message;
|
||||
}
|
||||
if (goToPermissionsSnackbar != null) {
|
||||
goToPermissionsSnackbar.setText(permissionDeniedMessage);
|
||||
}
|
||||
}
|
||||
|
||||
protected void requestPermissions() {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && permissions != null) {
|
||||
requestPermissions(permissions, PERMISSION_REQUEST);
|
||||
|
|
@ -118,16 +150,21 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == PERMISSION_REQUEST) {
|
||||
for (int grantResult : grantResults) {
|
||||
if (grantResult == PackageManager.PERMISSION_GRANTED) {
|
||||
recreate();
|
||||
if (grantResult != PackageManager.PERMISSION_GRANTED) {
|
||||
if (goToPermissionsSnackbar == null) {
|
||||
goToPermissionsSnackbar = Snackbar.make(getWindow().getDecorView(), permissionDeniedMessage, Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(getString(R.string.action_settings), goToPermissionSettingsOnClick)
|
||||
.setActionTextColor(ThemeSingleton.get().positiveColor);
|
||||
goToPermissionsSnackbar.show();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
//TODO snack nachricht veralgemeinern
|
||||
Snackbar.make(getWindow().getDecorView(), R.string.permission_to_access_external_storage_denied, Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(getString(R.string.action_settings), goToPermissionSettingsOnClick)
|
||||
.setActionTextColor(ThemeSingleton.get().positiveColor)
|
||||
.show();
|
||||
if (goToPermissionsSnackbar != null) {
|
||||
goToPermissionsSnackbar.dismiss();
|
||||
goToPermissionsSnackbar = null;
|
||||
}
|
||||
onPermissionsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,7 @@ import android.os.IBinder;
|
|||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
|
||||
import com.kabouzeid.gramophone.R;
|
||||
import com.kabouzeid.gramophone.helper.MusicPlayerRemote;
|
||||
import com.kabouzeid.gramophone.interfaces.MusicServiceEventListener;
|
||||
import com.kabouzeid.gramophone.service.MusicService;
|
||||
|
|
@ -36,6 +37,8 @@ public abstract class AbsMusicServiceActivity extends AbsBaseActivity implements
|
|||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
serviceToken = MusicPlayerRemote.bindToService(this, this);
|
||||
|
||||
setPermissionDeniedMessage(getString(R.string.permission_external_storage_denied));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -171,8 +171,10 @@ public class PlaybackControlsFragment extends Fragment implements MusicServiceEv
|
|||
playPauseFab.post(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
playPauseFab.setPivotX(playPauseFab.getWidth() / 2);
|
||||
playPauseFab.setPivotY(playPauseFab.getHeight() / 2);
|
||||
if (playPauseFab != null) {
|
||||
playPauseFab.setPivotX(playPauseFab.getWidth() / 2);
|
||||
playPauseFab.setPivotY(playPauseFab.getHeight() / 2);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue