Giter Site home page Giter Site logo

uservoice-android-sdk's Introduction

⛔ [DEPRECATED] This repository is no longer actively maintained. You may fork the project but we are no longer accepting pull requests or new issues. You may reach out to [email protected] with questions.

UserVoice Android SDK

The UserVoice Android SDK allows you to integrate a native UserVoice experience directly in your Android apps.

Installation

The best way to install UserVoice for Android is to use gradle and jcenter. First add jcenter to your list of Maven repositories, if needed.

allprojects {
    repositories {
        jcenter()
    }
}

Then, add the UserVoice SDK as a project dependency.

dependencies {
    compile 'com.uservoice:uservoice-android-sdk:+'
}

Add the following code to initialize the UserVoice SDK. This code should run whenever the user launches your app (for metrics purposes), but you also need to make sure that it has been run before trying to launch the UserVoice interface. (If a user navigates directly to one of your apps activities and then launches UserVoice, you want it to be initialized first.)

You can also call UserVoice.init() again with a different config if you need different settings in different contexts.

Config config = new Config("yoursite.uservoice.com");
UserVoice.init(config, this);

Finally, invoke the UserVoice SDK from your application using one of the following methods.

UserVoice.launchUserVoice(this);    // Show the UserVoice portal
UserVoice.launchForum(this);        // Show the feedback forum
UserVoice.launchContactUs(this);    // Show the contact form
UserVoice.launchPostIdea(this);     // Show the idea form

Using with proguard

You need to exclude some dependencies to avoid problems with org.apache.http. A ``-dontwarnstatement in the proguard file is not enough (see issue [#147](https://github.com/uservoice/uservoice-android-sdk/issues/147)), you will have to modify yourbuild.gradle` as follows:

compile ('com.uservoice:uservoice-android-sdk:1.2.+') {
    exclude module: 'commons-logging'
    exclude module: 'httpcore'
    exclude module: 'httpclient'
}

Also, to avoid crashes on some devices, add the following to your proguard file:

-keep class android.support.v7.widget.SearchView { *; }

Other Config options

Before calling UserVoice.init you can further customize your configuration.

  • Select the forum to display (defaults to your default forum)
config.setForumId(58438);
  • Identify the user with guid, name, and email
config.identifyUser("123", "Test User", "[email protected]");
  • Track user and account traits
config.putUserTrait("type", "Account Owner");
config.putAccountTrait("id", "1234");
config.putAccountTrait("name", "SomeCompany");
config.putAccountTrait("ltv", 212.50);
  • Turn off different parts of the SDK
config.setShowForum(false);
config.setShowContactUs(false);
config.setShowPostIdea(false);
config.setShowKnowledgeBase(false);

  • Select the topic to display (defaults to displaying all topics) NOTE: you must have ticketing features enabled to do this. Doing so without ticketing will crash the application
config.setTopicId(495584);

  • Set ticket field values NOTE: you must have ticketing features enabled to do this. Doing so without ticketing will crash the application
Map<String, String> ticketFields = new HashMap<String, String>();
ticketFields.put("My Field", "My Value");
config.setCustomFields(ticketFields);

Advanced

  • Wire up external user ids for admin console Gadgets
UserVoice.setExternalId("myapp", "1234");

Theming

Starting in version 1.2.0 the UserVoice SDK uses its own theme rather than inheriting the theme of the host app, so that the host app's theme won't conflict with it (e.g. if the host app does not use an AppCompat theme, or if it doesn't have an action bar). To customize the appearance of the UserVoice SDK, you need to override its default theme by creating a theme called UserVoiceTheme in your own styles.xml files. This theme will need to derive from Theme.AppCompat from the v7 compatibility library, and include an action bar.

<style name="UserVoiceTheme" parent="Theme.AppCompat.Light">
    <!-- theme customizations -->
</style>

Private sites

Note: UserVoice for Android does not support private forums. This section is only relevant to those using sitewide privacy.

The SDK relies on being able to obtain a client key to communicate with the UserVoice API. If you have a public UserVoice site (the default) then it can obtain this key automatically, so you only need to pass your site URL. However, if you turn on site privacy, this key is also private, so you will need to pass it in. You can obtain an API key pair from the mobile settings section of the UserVoice admin console.

Config config = new Config("yoursite.uservoice.com", "API_CLIENT_KEY", "API_CLIENT_SECRET");
UserVoice.init(config);

Kids Apps

The UserVoice Platform, including iOS & Android SDKs, is not COPPA compliant and should not be used in apps marketed at children.

Translations

UserVoice for Android now has support for the following locales: cs, en, fr, nl, pt, ru, zh-rTW.

If you have done an additional translation, we would love to pull it in so that everyone can benefit. Just fork the project and submit a pull request.

Some strings that show up in the SDK may come directly from the UserVoice API. If a translation is missing for a string that does not appear in the SDK codebase, you will need to contribute to the main UserVoice translation site.

License

Copyright 2013 UserVoice Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

uservoice-android-sdk's People

Contributors

amoore614 avatar austintaylor avatar bcylin avatar billge avatar biokys avatar bzwheeler avatar cancian avatar cketti avatar ddrboxman avatar dlackty avatar dream-of-electric-sheep avatar erikghonyan avatar f2006 avatar fchauveau avatar fmt-println-mko avatar gkukurin avatar jackuse avatar jfsso avatar jmngpt avatar joshuarudd avatar lucianobustos avatar lukeautry avatar paitoanderson avatar phpeng-ms avatar populov avatar rothschild86 avatar shdunning avatar stevenmohr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

uservoice-android-sdk's Issues

Crash when calling UserVoice.launchUserVoice

Hi,

I tried integrating the sdk into one of my apps. I followed all the steps on the README, but the app crashes when I call UserVoice.launchUserVoice.

05-30 20:01:37.293: D/SherlockFragmentActivity(2740): [onMenuItemSelected] returning true
05-30 20:01:37.333: W/dalvikvm(2740): VFY: unable to find class referenced in signature (Loauth/signpost/OAuthConsumer;)
05-30 20:01:37.333: I/dalvikvm(2740): Could not find method oauth.signpost.OAuthConsumer.setTokenWithSecret, referenced from method com.uservoice.uservoicesdk.rest.RestTask.doInBackground
05-30 20:01:37.333: W/dalvikvm(2740): VFY: unable to resolve interface method 9334: Loauth/signpost/OAuthConsumer;.setTokenWithSecret (Ljava/lang/String;Ljava/lang/String;)V
05-30 20:01:37.333: D/dalvikvm(2740): VFY: replacing opcode 0x72 at 0x001e
05-30 20:01:37.333: I/dalvikvm(2740): Could not find method oauth.signpost.OAuthConsumer.sign, referenced from method com.uservoice.uservoicesdk.rest.RestTask.doInBackground
05-30 20:01:37.333: W/dalvikvm(2740): VFY: unable to resolve interface method 9335: Loauth/signpost/OAuthConsumer;.sign (Ljava/lang/Object;)Loauth/signpost/http/HttpRequest;
05-30 20:01:37.333: D/dalvikvm(2740): VFY: replacing opcode 0x72 at 0x0021
05-30 20:01:37.353: W/dalvikvm(2740): threadid=17: thread exiting with uncaught exception (group=0x40faf930)
05-30 20:01:37.353: W/dalvikvm(2740): threadid=18: thread exiting with uncaught exception (group=0x40faf930)

any ideas?

Crash on UserVoice.init

Last thing I can catch in the logs before the process dies:

W/ResponseProcessCookies( 3905): Invalid cookie header: "Set-Cookie: uvts=aaDxikBuJoxXFrI; Version=1; Expires=Thu, 11 Sep 2014 18:49:16 GMT; Max-Age=31556926; Domain=.uservoice.com; Path=/". Unable to parse expires attribute: Thu
F/libc ( 3905): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 3930 (AsyncTask #2)

All I'm calling is:

        Config config = new Config("feedback.uservoice.com");
        UserVoice.init(config, this);

NPE on resume

If user browses uservoice activity, leaves the device alone for a while with uservoice on the screen, and comes back later, they'll be greeted with a null ref crash.

11-16 22:56:40.947: E/AndroidRuntime(31530): FATAL EXCEPTION: main
11-16 22:56:40.947: E/AndroidRuntime(31530): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.stuffd/com.uservoice.uservoicesdk.activity.PortalActivity}: java.lang.NullPointerException

11-16 22:56:40.947: E/AndroidRuntime(31530): Caused by: java.lang.NullPointerException
11-16 22:56:40.947: E/AndroidRuntime(31530): at com.uservoice.uservoicesdk.model.ClientConfig.loadClientConfig(ClientConfig.java:28)

I assume the activity gets destroyed, and then not recreated properly (config becomes null).

Opening external URLs

To have a choice, wheather to open urls in current activity, or open by external browser

NPE on portal

I got the following error using UVDemo

ERROR/AndroidRuntime(15873): FATAL EXCEPTION: main
        java.lang.NullPointerException
        at com.uservoice.uservoicesdk.ui.PortalAdapter.getCount(PortalAdapter.java:137)
        at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
        at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:5958)
        at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
        at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
        at com.uservoice.uservoicesdk.ui.PortalAdapter$2.onModel(PortalAdapter.java:81)
        at com.uservoice.uservoicesdk.ui.PortalAdapter$2.onModel(PortalAdapter.java:77)
        at com.uservoice.uservoicesdk.model.Forum$1.onComplete(Forum.java:21)
        at com.uservoice.uservoicesdk.rest.RestTask.onPostExecute(RestTask.java:99)
        at com.uservoice.uservoicesdk.rest.RestTask.onPostExecute(RestTask.java:38)
        at android.os.AsyncTask.finish(AsyncTask.java:631)
        at android.os.AsyncTask.access$600(AsyncTask.java:177)
        at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:137)
        at android.app.ActivityThread.main(ActivityThread.java:5226)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
        at dalvik.system.NativeStart.main(Native Method)

Concerned code line is :

        return staticRows.size() + (Session.getInstance().getConfig().shouldShowKnowledgeBase() ? (getTopics() == null ? 1 : (shouldShowArticles() ? getArticles().size() : getTopics().size())) : 0);

Please give us opportunity to build against stable branch

We integrated Uservoice into live app. Few days later we updated to latest version in master branch and it's no longer working.

Master branch have "WIP" commits - work in progress. Apparently not suitable for production use.
Could you please follow standard by having "develop" branch for unstable and master branch for stable code?
Yes, we know it's a beta SDK but who knows how long it will be so, maybe months and version that was few days ago was okay in most aspects.

You could branch develop from commit 396b05c which seems to be latest stable overall.

Thank you.

Getting NoClassDefFoundError when user tries to open UserVoice

Here's the stack trace, let me know what else will be helpful. Thanks.
0
java.lang.NoClassDefFoundError: com.uservoice.uservoicesdk.ui.SearchExpandListener
1
at com.uservoice.uservoicesdk.activity.BaseActivity.setupScopedSearch(BaseActivity.java:60)
2
at com.uservoice.uservoicesdk.activity.PortalActivity.onCreateOptionsMenu(PortalActivity.java:29)
3
at android.app.Activity.onCreatePanelMenu(Activity.java:2389)
4
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:219)
5
at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:369)
6
at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:669)
7
at com.android.internal.policy.impl.PhoneWindow$2.run(PhoneWindow.java:2734)
8
at android.os.Handler.handleCallback(Handler.java:587)
9
at android.os.Handler.dispatchMessage(Handler.java:92)
10
at android.os.Looper.loop(Looper.java:132)
11
at android.app.ActivityThread.main(ActivityThread.java:4028)
12
at java.lang.reflect.Method.invokeNative(Native Method)
13
at java.lang.reflect.Method.invoke(Method.java:491)
14
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
15
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
16
at dalvik.system.NativeStart.main(Native Method)

NoSuchMethodError occurs when running master on Android 2.3 devices

08-20 14:31:12.506: E/AndroidRuntime(27801): FATAL EXCEPTION: main
08-20 14:31:12.506: E/AndroidRuntime(27801): java.lang.NoSuchMethodError: com.uservoice.uservoicesdk.activity.BaseActivity.getActionBar
08-20 14:31:12.506: E/AndroidRuntime(27801):    at com.uservoice.uservoicesdk.activity.BaseActivity.onCreate(BaseActivity.java:35)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at com.uservoice.uservoicesdk.activity.InstantAnswersActivity.onCreate(InstantAnswersActivity.java:25)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at com.uservoice.uservoicesdk.activity.ContactActivity.onCreate(ContactActivity.java:13)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.app.ActivityThread.access$1500(ActivityThread.java:117)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.os.Looper.loop(Looper.java:130)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at android.app.ActivityThread.main(ActivityThread.java:3687)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at java.lang.reflect.Method.invokeNative(Native Method)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at java.lang.reflect.Method.invoke(Method.java:507)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
08-20 14:31:12.506: E/AndroidRuntime(27801):    at dalvik.system.NativeStart.main(Native Method)

NPE while posting a support request

java.lang.NullPointerException
at com.uservoice.uservoicesdk.ui.PostIdeaAdapter.getDetailRows(PostIdeaAdapter.java:47)
at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter.getRows(InstantAnswersAdapter.java:88)
at com.uservoice.uservoicesdk.ui.PostIdeaAdapter.getRows(PostIdeaAdapter.java:57)
at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter.getCount(InstantAnswersAdapter.java:100)
at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:801)
at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:6538)
at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter.onButtonTapped(InstantAnswersAdapter.java:274)
at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter$1.onClick(InstantAnswersAdapter.java:157)
at android.view.View.performClick(View.java:4222)
at android.view.View$PerformClick.run(View.java:17273)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4895)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
at dalvik.system.NativeStart.main(Native Method)

"Error connecting to UserVoice" when opening Forum activity

Message displayed on screen: "Error connecting to UserVoice"

Log message:

07-07 17:49:34.506: E/com.uservoice.uservoicesdk(32251): 422 -- {"errors":{"message":"Need sso or user.email","type":"record_not_saved"}}

It was working fine until July 5 commits.

ANR calling all UserVoice launch methods launchUserVoice, launchForum, launchContactUs and launchPostIdea

Platform features:
Android 4.1.2
Samsung S3 (GT-I9300)

I've added:
Config config = new Config(USER_VOICE_SITE);
UserVoice.init(config, this);

in the onCreate method of my project application class.

Using the following inline callback declaration on a ListView in an Activity:

    final Context applicationContext = this.getApplicationContext(); // this is the current activity, passing the activity itself it works sayin Connection Error to UserVoice
    aboutMenuListView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            if (id == AboutMenuAdapter.AboutItems.USER_VOICE_PORTAL.getValue()) {
                UserVoice.launchUserVoice(applicationContext);    // Show the UserVoice portal
            }
            else if (id == AboutMenuAdapter.AboutItems.USER_VOICE_FORUM.getValue()) {
                UserVoice.launchForum(applicationContext);        // Show the feedback forum
            }
            else if (id == AboutMenuAdapter.AboutItems.USER_VOICE_CONTACT.getValue()) {
                UserVoice.launchContactUs(applicationContext);    // Show the contact form
            }
            else if (id == AboutMenuAdapter.AboutItems.USER_VOICE_IDEA.getValue()) {
                UserVoice.launchPostIdea(applicationContext);     // Show the idea form
            }

        }
    });

Clicking on the item in the list, we encounter the following problem (telling that I try to call start activity outside of an activity ?):

01-09 19:34:09.695: E/AndroidRuntime(8414): FATAL EXCEPTION: main
01-09 19:34:09.695: E/AndroidRuntime(8414): android.util.AndroidRuntimeException: Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.app.ContextImpl.startActivity(ContextImpl.java:1029)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.app.ContextImpl.startActivity(ContextImpl.java:1023)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.content.ContextWrapper.startActivity(ContextWrapper.java:283)
01-09 19:34:09.695: E/AndroidRuntime(8414): at com.uservoice.uservoicesdk.UserVoice.launchPostIdea(UserVoice.java:35)
01-09 19:34:09.695: E/AndroidRuntime(8414): at com.mappy.app.ui.AboutActivity$1.onItemClick(AboutActivity.java:92)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.widget.AdapterView.performItemClick(AdapterView.java:301)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.widget.AbsListView.performItemClick(AbsListView.java:1276)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.widget.AbsListView$PerformClick.run(AbsListView.java:3067)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.widget.AbsListView$1.run(AbsListView.java:3963)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.os.Handler.handleCallback(Handler.java:615)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.os.Handler.dispatchMessage(Handler.java:92)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.os.Looper.loop(Looper.java:137)
01-09 19:34:09.695: E/AndroidRuntime(8414): at android.app.ActivityThread.main(ActivityThread.java:4898)
01-09 19:34:09.695: E/AndroidRuntime(8414): at java.lang.reflect.Method.invokeNative(Native Method)
01-09 19:34:09.695: E/AndroidRuntime(8414): at java.lang.reflect.Method.invoke(Method.java:511)
01-09 19:34:09.695: E/AndroidRuntime(8414): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
01-09 19:34:09.695: E/AndroidRuntime(8414): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
01-09 19:34:09.695: E/AndroidRuntime(8414): at dalvik.system.NativeStart.main(Native Method)

Focus always returns to 'Enter your question or feedback'

When I enter a question and press Next, I get the form to enter Email and Name. However, the email and name fields cannot be selected as focus always returns immediately to the question/feedback field.

This is blocking a release as it makes the feature entirely unusable.

Thanks!

NoSuchMethodError when launch "Contact Us" on a Android 2.3.6 device

What is minimum API level supported in UserVoice SDK? The minimum API level supported in our app is level 10, so we observe a crash every time when launch a user voice view on a Android 2.3.6 device.

Callstack:

0   
java.lang.NoSuchMethodError: com.uservoice.uservoicesdk.activity.BaseActivity.getActionBar
1   
at com.uservoice.uservoicesdk.activity.BaseActivity.onCreate(BaseActivity.java:34)
2   
at com.uservoice.uservoicesdk.activity.InstantAnswersActivity.onCreate(InstantAnswersActivity.java:25)
3   
at com.uservoice.uservoicesdk.activity.ContactActivity.onCreate(ContactActivity.java:13)
4   
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1072)
5   
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1836)
6   
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1893)
7   
at android.app.ActivityThread.access$1500(ActivityThread.java:135)
8   
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1054)
9   
at android.os.Handler.dispatchMessage(Handler.java:99)
10  
at android.os.Looper.loop(Looper.java:150)
11  
at android.app.ActivityThread.main(ActivityThread.java:4385)
12  
at java.lang.reflect.Method.invokeNative(Native Method)
13  
at java.lang.reflect.Method.invoke(Method.java:507)
14  
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849)
15  
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607)
16  
at dalvik.system.NativeStart.main(Native Method)

Sign the Demo APK

You need to build the APK with a key. Any key. Even the Debug Key included in the SDK.
Otherway, can't install it manually on a device.

Not able to use the contactUs feature on Android KitKat

Thought this was similar to issue #58 but it's clearly in a different area and the code fix is not relevant.

I am using the "launchContactUs" method and am currently not able to get to the point where I can submit the question/feedback.

If I fill in a question or feedback, press "Next" I get any matching suggestions from our UserVoice account. BUT the question I typed is now gone. If I click "I still want to send a message" (which is obscured by the keyboard and the screen is NOT scrollable), some additional fields are shown for email address and name. If I fill these in and press "Send message" it fails with an error.

The Eclipse log tab shows "{"errors":{"message":"You must provide a ticket message.","type":"invalid_parameters"}}" which clearly means I didn't enter a message - remember above I said the message was gone?

If I try to re-enter the message, then the form changes back to the first step, i.e. the email and name are gone and are replaced with a "Next" button again?

Is there a fix time for this as this is going to hold up our release as it is, cheers.

Non-latin text submitted as "?????".

We're experiencing data loss: non-english content appear submitted as "????"

Here's what we receive in UserVoice portal:

Title: Ваш запрос в службу поддержки датирован Aug 30, 2013
Channel  Android SDK
Browser Unknown 0 (Unknown)
Content:
??? ????? ? ??????????

java.lang.NullPointerException in com.uservoice.uservoicesdk.model.ClientConfig.loadClientConfig

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.droid4you.application.wallet/com.uservoice.uservoicesdk.activity.PortalActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1818)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
at android.app.ActivityThread.access$500(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:132)
at android.app.ActivityThread.main(ActivityThread.java:4126)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:491)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:844)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:602)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.uservoice.uservoicesdk.model.ClientConfig.loadClientConfig(ClientConfig.java:25)
at com.uservoice.uservoicesdk.flow.InitManager.init(InitManager.java:28)
at com.uservoice.uservoicesdk.ui.PortalAdapter.(PortalAdapter.java:50)
at com.uservoice.uservoicesdk.activity.PortalActivity.onCreate(PortalActivity.java:20)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
... 11 more

Leaks found in httpclient

Quite frequently I see these in my logcat:

11-28 14:43:19.308: E/AndroidHttpClient(11810): Leak found
11-28 14:43:19.308: E/AndroidHttpClient(11810): java.lang.IllegalStateException: AndroidHttpClient created and never closed
11-28 14:43:19.308: E/AndroidHttpClient(11810): at android.net.http.AndroidHttpClient.(AndroidHttpClient.java:153)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at android.net.http.AndroidHttpClient.newInstance(AndroidHttpClient.java:139)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at com.uservoice.uservoicesdk.rest.RestTask.doInBackground(RestTask.java:73)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at com.uservoice.uservoicesdk.rest.RestTask.doInBackground(RestTask.java:1)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at android.os.AsyncTask$2.call(AsyncTask.java:185)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.lang.Thread.run(Thread.java:1096)
11-28 14:43:19.308: E/AndroidHttpClient(11810): Leak found
11-28 14:43:19.308: E/AndroidHttpClient(11810): java.lang.IllegalStateException: AndroidHttpClient created and never closed
11-28 14:43:19.308: E/AndroidHttpClient(11810): at android.net.http.AndroidHttpClient.(AndroidHttpClient.java:153)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at android.net.http.AndroidHttpClient.newInstance(AndroidHttpClient.java:139)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at com.uservoice.uservoicesdk.babayaga.BabayagaTask.doInBackground(BabayagaTask.java:71)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at com.uservoice.uservoicesdk.babayaga.BabayagaTask.doInBackground(BabayagaTask.java:1)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at android.os.AsyncTask$2.call(AsyncTask.java:185)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1068)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:561)
11-28 14:43:19.308: E/AndroidHttpClient(11810): at java.lang.Thread.run(Thread.java:1096)

Keys Errors

Hi,

I followed tutorial and made an untrusted API Key and it's not working.
The following message is printed in log.

ERROR/com.uservoice.uservoicesdk(10767): 401 -- {"errors":{"message":"Client requis: mais pas de client (client = xxx ou oauth_consumer_key = xxx) présente.","type":"unauthorized"}}

By the way, It's funny that the 401 error message is in french ^^

Anyway, using iOS's key is working for me.

Forum Activity delay when first opened

When Forum activity is opened First time (tested on 2.3, 4.x devices), It displays
"Post Idea, I suggest you___ " and blank screen under it for 2-3 seconds.

After 2-3 seconds spinner appears and it's visible that it loads forums.
When you open Forum 2nd time it starts loading forums right away.

This is a big UX problem because user will open this menu and will see that it only asks for suggestion and nothing is loading. And user will go back before seeing that it is loading something.
Basically this delay before loading makes this activity useless since it will never be discovered.

"I suggest you..." textfield has allways focus on Galaxy Nexus

When I want to write a suggestion the textfield with the "I suggest you..." text has allways the focus. So I'm not able to enter my email adress, because the cursor jumps back to the "I suggest you..." textfield.

How can I fix this?

Thanks in advanced.

If UserVoice server is down/slow app becomes unresponsive

If the UV servers are down (as they are now) then calling UserVoice.init(config, this); basically locks my app until the request times out (maybe a minute or more). Is there any way to prevent this, or configure a timeout for UV requests?

NullPointerException give by Session.getInstance().getForum() returns null

NullPointerException when posting an idea. It's caused by the fact that Session.getInstance().getForum() returns null.
loadForum might be that loadForum was apparently never called.
Also my account waiterio.uservoice.com has no ideas inseide.

07-16 22:44:26.891: W/System.err(11631): java.lang.NullPointerException
07-16 22:44:26.941: W/System.err(11631): at com.uservoice.uservoicesdk.ui.PostIdeaAdapter.getDetailRows(PostIdeaAdapter.java:47)
07-16 22:44:26.941: W/System.err(11631): at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter.getRows(InstantAnswersAdapter.java:88)
07-16 22:44:26.946: W/System.err(11631): at com.uservoice.uservoicesdk.ui.PostIdeaAdapter.getRows(PostIdeaAdapter.java:57)
07-16 22:44:26.946: W/System.err(11631): at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter.getCount(InstantAnswersAdapter.java:100)
07-16 22:44:26.951: W/System.err(11631): at android.widget.AdapterView$AdapterDataSetObserver.onChanged(AdapterView.java:804)
07-16 22:44:26.951: W/System.err(11631): at android.widget.AbsListView$AdapterDataSetObserver.onChanged(AbsListView.java:6734)
07-16 22:44:26.956: W/System.err(11631): at android.database.DataSetObservable.notifyChanged(DataSetObservable.java:37)
07-16 22:44:26.956: W/System.err(11631): at android.widget.BaseAdapter.notifyDataSetChanged(BaseAdapter.java:50)
07-16 22:44:26.956: W/System.err(11631): at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter$3.onModel(InstantAnswersAdapter.java:269)
07-16 22:44:26.961: W/System.err(11631): at com.uservoice.uservoicesdk.ui.InstantAnswersAdapter$3.onModel(InstantAnswersAdapter.java:1)
07-16 22:44:26.961: W/System.err(11631): at com.uservoice.uservoicesdk.model.Article$3.onComplete(Article.java:53)
07-16 22:44:26.966: W/System.err(11631): at com.uservoice.uservoicesdk.rest.RestTask.onPostExecute(RestTask.java:116)
07-16 22:44:26.966: W/System.err(11631): at com.uservoice.uservoicesdk.rest.RestTask.onPostExecute(RestTask.java:1)
07-16 22:44:26.971: W/System.err(11631): at android.os.AsyncTask.finish(AsyncTask.java:631)
07-16 22:44:26.971: W/System.err(11631): at android.os.AsyncTask.access$600(AsyncTask.java:177)
07-16 22:44:26.976: W/System.err(11631): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
07-16 22:44:26.981: W/System.err(11631): at android.os.Handler.dispatchMessage(Handler.java:99)
07-16 22:44:26.981: W/System.err(11631): at android.os.Looper.loop(Looper.java:137)
07-16 22:44:26.981: W/System.err(11631): at android.app.ActivityThread.main(ActivityThread.java:4921)
07-16 22:44:26.981: W/System.err(11631): at java.lang.reflect.Method.invokeNative(Native Method)
07-16 22:44:26.981: W/System.err(11631): at java.lang.reflect.Method.invoke(Method.java:511)
07-16 22:44:26.981: W/System.err(11631): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1038)
07-16 22:44:26.981: W/System.err(11631): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:805)
07-16 22:44:26.981: W/System.err(11631): at dalvik.system.NativeStart.main(Native Method)

Great way to madden users - composed text gone on rotate

If a user rotates the screen in a middle of composing a support request/feature idea, all their hard work is wiped away.

I'm doing this as a hack for now. But this is no good, since it does not account for dozens of other config changes.

    <activity android:name="com.uservoice.uservoicesdk.activity.PortalActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.uservoice.uservoicesdk.activity.ForumActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.uservoice.uservoicesdk.activity.ArticleActivity" android:hardwareAccelerated="true" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.uservoice.uservoicesdk.activity.TopicActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.uservoice.uservoicesdk.activity.ContactActivity" android:hardwareAccelerated="true" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>
    <activity android:name="com.uservoice.uservoicesdk.activity.PostIdeaActivity" android:hardwareAccelerated="true" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"/>

Crashes when selecting Feedback Forum

We are launching via:

UserVoice.launchUserVoice(mActivity); // Show the UserVoice portal

And all features seem to be working well, except when user taps Feedback Forum, the app crashes.

BTW, one thing I remember, a previous version of the iOS SDK was crashing because we had too many items for something (don't remember what, could have been forum ideas?). It's showing we have "401 ideas" -- maybe a similar problem?

Log/call stack:

I/ActivityManager( 482): START u0 {cmp=com.peoplefun.wordchums/com.uservoice.uservoicesdk.activity.ForumActivity} from pid 4219
D/AndroidRuntime( 4219): Shutting down VM
W/dalvikvm( 4219): threadid=1: thread exiting with uncaught exception (group=0x40c57930)
E/Crittercism( 4219): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.peoplefun.wordchums/com.uservoice.uservoicesdk.activity.ForumActivity}: java.lang.NullPointerException
E/Crittercism( 4219): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
E/Crittercism( 4219): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/Crittercism( 4219): at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/Crittercism( 4219): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/Crittercism( 4219): at android.os.Handler.dispatchMessage(Handler.java:99)
E/Crittercism( 4219): at android.os.Looper.loop(Looper.java:137)
E/Crittercism( 4219): at android.app.ActivityThread.main(ActivityThread.java:5041)
E/Crittercism( 4219): at java.lang.reflect.Method.invokeNative(Native Method)
E/Crittercism( 4219): at java.lang.reflect.Method.invoke(Method.java:511)
E/Crittercism( 4219): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/Crittercism( 4219): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/Crittercism( 4219): at dalvik.system.NativeStart.main(Native Method)
E/Crittercism( 4219): Caused by: java.lang.NullPointerException
E/Crittercism( 4219): at com.uservoice.uservoicesdk.activity.ForumActivity.onCreate(ForumActivity.java:180)
E/Crittercism( 4219): at android.app.Activity.performCreate(Activity.java:5104)
E/Crittercism( 4219): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
E/Crittercism( 4219): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)

on 2013-07-02 22:23 *

Text is awful small

UI text is fine, but kb articles are in such tiny font (does not get any better on a tablet - still tiny). Could it be at least the same size as interface font? Thanks :) Excited to see the lib!

Suggest an idea crashes

Getting this call stack:
Fatal Exception java.lang.NullPointerException
0
PostIdeaAdapter.java line 47
com.uservoice.uservoicesdk.ui.PostIdeaAdapter.getDetailRows
1
InstantAnswersAdapter.java line 88
com.uservoice.uservoicesdk.ui.InstantAnswersAdapter.getRows
2
PostIdeaAdapter.java line 57
com.uservoice.uservoicesdk.ui.PostIdeaAdapter.getRows
3
InstantAnswersAdapter.java line 100
com.uservoice.uservoicesdk.ui.InstantAnswersAdapter.getCount
4
AdapterView.java line 801
android.widget.AdapterView$AdapterDataSetObserver.onChanged
5
AbsListView.java line 6044
android.widget.AbsListView$AdapterDataSetObserver.onChanged
6
DataSetObservable.java line 37
android.database.DataSetObservable.notifyChanged
7
BaseAdapter.java line 50
android.widget.BaseAdapter.notifyDataSetChanged
8
InstantAnswersAdapter.java line 269
com.uservoice.uservoicesdk.ui.InstantAnswersAdapter$3.onModel
9
InstantAnswersAdapter.java line 1
com.uservoice.uservoicesdk.ui.InstantAnswersAdapter$3.onModel
10
Article.java line 53
com.uservoice.uservoicesdk.model.Article$3.onComplete
11
RestTask.java line 116
com.uservoice.uservoicesdk.rest.RestTask.onPostExecute
12
RestTask.java line 1
com.uservoice.uservoicesdk.rest.RestTask.onPostExecute
13 ...
AsyncTask.java line 631
android.os.AsyncTask.finish
14
AsyncTask.java line 177
android.os.AsyncTask.access$600
15
AsyncTask.java line 644
android.os.AsyncTask$InternalHandler.handleMessage
16
Handler.java line 99
android.os.Handler.dispatchMessage
17
Looper.java line 137
android.os.Looper.loop
18
ActivityThread.java line 4745
android.app.ActivityThread.main
19 ...
Method.java line
java.lang.reflect.Method.invokeNative
20
Method.java line 511
java.lang.reflect.Method.invoke
21
ZygoteInit.java line 786
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
22
ZygoteInit.java line 553
com.android.internal.os.ZygoteInit.main
23
NativeStart.java line
dalvik.system.NativeStart.main

User comments encode problem

in RestTask.java method requestWithEntity
You should use
request.setEntity(new UrlEncodedFormEntity(params,"UTF-8"));
instead of
request.setEntity(new UrlEncodedFormEntity(params));
to avoid encode error on Non-English input by user.

Crash opening any UserVoice activity

Crashes trying to open any UserVoice component

07-23 01:53:49.704: E/AndroidRuntime(25499): FATAL EXCEPTION: AsyncTask #4
07-23 01:53:49.704: E/AndroidRuntime(25499): java.lang.RuntimeException: An error occured while executing doInBackground()
07-23 01:53:49.704: E/AndroidRuntime(25499):    at android.os.AsyncTask$3.done(AsyncTask.java:299)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.lang.Thread.run(Thread.java:856)
07-23 01:53:49.704: E/AndroidRuntime(25499): Caused by: java.lang.NoClassDefFoundError: oauth.signpost.commonshttp.CommonsHttpOAuthConsumer
07-23 01:53:49.704: E/AndroidRuntime(25499):    at com.uservoice.uservoicesdk.Session.getOAuthConsumer(Session.java:108)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at com.uservoice.uservoicesdk.rest.RestTask.doInBackground(RestTask.java:63)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at com.uservoice.uservoicesdk.rest.RestTask.doInBackground(RestTask.java:1)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at android.os.AsyncTask$2.call(AsyncTask.java:287)
07-23 01:53:49.704: E/AndroidRuntime(25499):    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
07-23 01:53:49.704: E/AndroidRuntime(25499):    ... 5 more

NPE with GetActionBar()

07-22 15:56:51.176: E/AndroidRuntime(5181): java.lang.NoSuchMethodError: com.uservoice.uservoicesdk.activity.BaseActivity.getActionBar
07-22 15:56:51.176: E/AndroidRuntime(5181):  at com.uservoice.uservoicesdk.activity.BaseActivity.onCreate(BaseActivity.java:34)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at com.uservoice.uservoicesdk.activity.ForumActivity.onCreate(ForumActivity.java:45)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.os.Handler.dispatchMessage(Handler.java:99)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.os.Looper.loop(Looper.java:130)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at android.app.ActivityThread.main(ActivityThread.java:3683)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at java.lang.reflect.Method.invokeNative(Native Method)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at java.lang.reflect.Method.invoke(Method.java:507)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
07-22 15:56:51.176: E/AndroidRuntime(5181):  at dalvik.system.NativeStart.main(Native Method)

Android 4.4 - Impossible to submit feedback

On android 4.4, when trying to submit feedback, the text for feedback is deleted when clicking on "next".

Steps to reproduce:
1/ open feedback page
2/ enter some text in the feedback text area
3/ hit next

Expected: the text entered should be kept
Actual: the text is deleted. Trying to enter some more text brings back the "next" button, which will delete once again the text when clicked.

support apps without action bars

My app doesn't have an action bar and your sdk crashes:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.labgoo.nobizcard/com.uservoice.uservoicesdk.activity.PortalActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
at android.app.ActivityThread.access$600(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.uservoice.uservoicesdk.activity.BaseActivity.onCreate(BaseActivity.java:36)
at com.uservoice.uservoicesdk.activity.PortalActivity.onCreate(PortalActivity.java:16)
at android.app.Activity.performCreate(Activity.java:5008)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
... 11 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.