Made snackbars work
This commit is contained in:
parent
32c56ca3ae
commit
ff2e6b1444
2 changed files with 35 additions and 22 deletions
|
|
@ -1,13 +1,18 @@
|
|||
package com.kabouzeid.gramophone.ui.activities.base;
|
||||
|
||||
import android.Manifest;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.media.AudioManager;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.provider.Settings;
|
||||
import android.support.annotation.NonNull;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.Snackbar;
|
||||
import android.support.v4.app.ActivityCompat;
|
||||
import android.view.KeyEvent;
|
||||
import android.view.View;
|
||||
|
||||
|
|
@ -28,8 +33,6 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
private String[] permissions;
|
||||
private String permissionDeniedMessage;
|
||||
|
||||
private Snackbar goToPermissionsSnackbar;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
|
@ -127,9 +130,6 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
} else {
|
||||
permissionDeniedMessage = message;
|
||||
}
|
||||
if (goToPermissionsSnackbar != null) {
|
||||
goToPermissionsSnackbar.setText(permissionDeniedMessage);
|
||||
}
|
||||
}
|
||||
|
||||
protected void requestPermissions() {
|
||||
|
|
@ -155,27 +155,39 @@ public abstract class AbsBaseActivity extends AbsThemeActivity implements KabVie
|
|||
if (requestCode == PERMISSION_REQUEST) {
|
||||
for (int grantResult : grantResults) {
|
||||
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();
|
||||
if (ActivityCompat.shouldShowRequestPermissionRationale(AbsBaseActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
|
||||
//User has deny from permission dialog
|
||||
Snackbar.make(getWindow().getDecorView(), permissionDeniedMessage,
|
||||
Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(R.string.action_grant, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
requestPermissions();
|
||||
}
|
||||
})
|
||||
.setActionTextColor(ThemeSingleton.get().positiveColor)
|
||||
.show();
|
||||
} else {
|
||||
// User has deny permission and checked never show permission dialog so you can redirect to Application settings page
|
||||
Snackbar.make(getWindow().getDecorView(), permissionDeniedMessage,
|
||||
Snackbar.LENGTH_INDEFINITE)
|
||||
.setAction(R.string.action_settings, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View view) {
|
||||
Intent intent = new Intent();
|
||||
intent.setAction(Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
|
||||
Uri uri = Uri.fromParts("package", AbsBaseActivity.this.getPackageName(), null);
|
||||
intent.setData(uri);
|
||||
startActivity(intent);
|
||||
}
|
||||
})
|
||||
.setActionTextColor(ThemeSingleton.get().positiveColor)
|
||||
.show();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (goToPermissionsSnackbar != null) {
|
||||
goToPermissionsSnackbar.dismiss();
|
||||
goToPermissionsSnackbar = null;
|
||||
}
|
||||
onPermissionsChanged();
|
||||
}
|
||||
}
|
||||
|
||||
private View.OnClickListener goToPermissionSettingsOnClick = new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
//TODO
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -7,7 +7,8 @@
|
|||
<string name="x_has_been_set_as_ringtone">Set %1$s as your ringtone.</string>
|
||||
<string name="action_set_as_ringtone">Set as ringtone</string>
|
||||
<string name="action_share">Share</string>
|
||||
<string name="action_settings">"Settings"</string>
|
||||
<string name="action_settings">Settings</string>
|
||||
<string name="action_grant">Grant</string>
|
||||
<string name="action_about">About</string>
|
||||
<string name="action_show_intro">Show intro</string>
|
||||
<string name="action_clear_playlist">Clear playlist</string>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue