Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I am experimenting this issue #17

Open
EbelloImbox opened this issue Mar 12, 2019 · 4 comments
Open

I am experimenting this issue #17

EbelloImbox opened this issue Mar 12, 2019 · 4 comments

Comments

@EbelloImbox
Copy link

EbelloImbox commented Mar 12, 2019

Hello, I would like to use this library, but I am experimenting this issue:

java.lang.NullPointerException:` Attempt to invoke virtual method 'java.util.Collection java.util.HashMap.values()' on a null object reference
        at com.kevalpatel.ringtonepicker.RingtonePickerDialog.getUriPosition(RingtonePickerDialog.java:332)
        at com.kevalpatel.ringtonepicker.RingtonePickerDialog.onCreateDialog(RingtonePickerDialog.java:271)
        at android.support.v4.app.DialogFragment.onGetLayoutInflater(DialogFragment.java:310)
        at android.support.v4.app.Fragment.performGetLayoutInflater(Fragment.java:1231)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1419)
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
        at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
        at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
        at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
        at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700)
        at android.os.Handler.handleCallback(Handler.java:808)
        at android.os.Handler.dispatchMessage(Handler.java:101)
        at android.os.Looper.loop(Looper.java:166)
        at android.app.ActivityThread.main(ActivityThread.java:7529)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:245)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:921)

Can you help me?

This is my code:

if (ActivityCompat.checkSelfPermission(context, Manifest.permission.READ_EXTERNAL_STORAGE) == PackageManager.PERMISSION_GRANTED) {
            com.kevalpatel.ringtonepicker.RingtonePickerDialog.Builder ringtonePickerBuilder = new com.kevalpatel.ringtonepicker.RingtonePickerDialog
                    .Builder(context, context.getSupportFragmentManager())

                    //Set title of the dialog.
                    //If set null, no title will be displayed.
                    .setTitle("Select ringtone")

                    //set the currently selected uri, to mark that ringtone as checked by default.
                    //If no ringtone is currently selected, pass null.
                    .setCurrentRingtoneUri(defaultSelectedRingtone)

                    //Set true to allow allow user to select default ringtone set in phone settings.
                    .displayDefaultRingtone(true)

                    //Set true to allow user to select silent (i.e. No ringtone.).
                    .displaySilentRingtone(true)

                    //set the text to display of the positive (ok) button.
                    //If not set OK will be the default text.
                    .setPositiveButtonText("SET RINGTONE")

                    //set text to display as negative button.
                    //If set null, negative button will not be displayed.
                    .setCancelButtonText("CANCEL")

                    //Set flag true if you want to play the sample of the clicked tone.
                    .setPlaySampleWhileSelection(true)

                    //Set the callback listener.
                    .setListener(new RingtonePickerListener() {
                        @Override
                        public void OnRingtoneSelected(@NonNull String ringtoneName, Uri ringtoneUri) {
                            //Do someting with selected uri...
                        }
                    });

            //Add the desirable ringtone types.
            ringtonePickerBuilder.addRingtoneType(com.kevalpatel.ringtonepicker.RingtonePickerDialog.Builder.TYPE_MUSIC);
            ringtonePickerBuilder.addRingtoneType(com.kevalpatel.ringtonepicker.RingtonePickerDialog.Builder.TYPE_NOTIFICATION);
            ringtonePickerBuilder.addRingtoneType(com.kevalpatel.ringtonepicker.RingtonePickerDialog.Builder.TYPE_RINGTONE);
            ringtonePickerBuilder.addRingtoneType(com.kevalpatel.ringtonepicker.RingtonePickerDialog.Builder.TYPE_ALARM);

            ringtonePickerBuilder.show();
        }else {
            ActivityCompat.requestPermissions(context, new String[]{
                        Manifest.permission.WRITE_EXTERNAL_STORAGE
                    },
                    123);
        }

I am using version 1.3

@EbelloImbox
Copy link
Author

With 1.2 version I am experimenting the following issue:

2019-03-12 12:52:54.413 21406-21406/com.spotbros.enterprise E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.spotbros.enterprise, PID: 21406
    java.lang.IllegalStateException: Storage permission is not available.
        at com.kevalpatel.ringtonepicker.RingtoneUtils.getMusic(RingtoneUtils.java:127)
        at com.kevalpatel.ringtonepicker.RingtonePickerDialog.prepareRingtoneList(RingtonePickerDialog.java:255)
        at com.kevalpatel.ringtonepicker.RingtonePickerDialog.onCreate(RingtonePickerDialog.java:203)
        at android.support.v4.app.Fragment.performCreate(Fragment.java:2339)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1377)
        at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1740)
        at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1809)
        at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:799)
        at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2580)
        at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2367)
        at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2322)
        at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2229)
        at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:700)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6669)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)

Of course I have tried to give Storage permission to the app and it has it, but I am not getting this library works.

@Leeeeerich
Copy link

Hello! I have the exact same problem. Through the settings, I turned on the permissions and checked its presence, but it still falls with a message about the lack of access.

@EbelloImbox
Copy link
Author

I tried to use this library, but I never got any help, so I surrendered and I changed my way and I did it by myself.

@Leeeeerich
Copy link

I am set ".setCurrentRingtoneUri(null)" and it work.
I also found another problem (inconsistency). It is written that you need READ_EXTERNAL_STORAGE, but in fact you need more WRITE_EXTERNAL_STORAGE, too. For ".addRingtoneType(RingtonePickerDialog.Builder.TYPE_MUSIC)"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants