question

lucdowell avatar image
lucdowell asked haryy answered

Cannot find inventory names

Hey guys, I've just started working with clover android SDK, and I've just finished setting up my environment. I'm now trying to run the inventory list display code found at the bottom of this page: https://docs.clover.com/clover-platform/docs/integrate-with-clover-android-sdk


I had issues initially with CloverAccount.getAccount(this) which I fixed by lowering my target SDK, but now I'm having an issue with mInventoryConnector.getItems(). I am not able to get that list for some reason. I added some logs to my code:


public class MainActivity extends AppCompatActivity {

    private Account mAccount;
    private InventoryConnector mInventoryConnector;
    private TextView mTextView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        Log.d("myTag", "Creating");
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    @Override
    protected void onResume() {
        super.onResume();

        mTextView = (TextView) findViewById(R.id.activity_main_text_view);
        Log.d("myTag", "onResume");
        // Retrieve the Clover account
        if (mAccount == null) {
            Log.d("myTag", "Could not find account");
            mAccount = CloverAccount.getAccount(this);

            if (mAccount == null) {
                Log.d("myTag", "Couldn't find account, Exiting");
                return;
            }
        }

        // Connect InventoryConnector
        connect();

        // Get Item
        new InventoryAsyncTask().execute();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        disconnect();
    }

    private void connect() {
        disconnect();
        Log.d("myTag", "connecting");
        if (mAccount != null) {
            Log.d("myTag", mAccount.name);
            Log.d("myTag", "Connected");
            mInventoryConnector = new InventoryConnector(this, mAccount, null);
            mInventoryConnector.connect();
        }
    }

    private void disconnect() {
        if (mInventoryConnector != null) {
            mInventoryConnector.disconnect();
            mInventoryConnector = null;
        }
    }

    private class InventoryAsyncTask extends AsyncTask<Void, Void, Item> {

        @Override
        protected final Item doInBackground(Void... params) {
            try {
                //Get inventory item
                Log.d("myTag", "Getting name");
                int sizeOfInventory = mInventoryConnector.getItems().size();
                Log.d("myTag", Integer.toString(sizeOfInventory));
                return mInventoryConnector.getItems().get(0);


            } catch (RemoteException | ClientException | ServiceException | BindingException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected final void onPostExecute(Item item) {
            if (item != null) {
                mTextView.setText(item.getName());
                Log.d("myTag", item.getName());
            } else {
                Log.d("myTag", "Did not find item");
            }
        }
    }
}

Here is my log output:

2020-05-23 20:02:06.465 6739-6739/? D/myTag: onResume
2020-05-23 20:02:06.465 6739-6739/? D/myTag: Could not find account
2020-05-23 20:02:06.467 6739-6739/? D/myTag: connecting
2020-05-23 20:02:06.467 6739-6739/? D/myTag: Test | testcloverdev@gmail.com (DEV)
2020-05-23 20:02:06.467 6739-6739/? D/myTag: Connected
2020-05-23 20:02:06.472 6739-6763/? D/myTag: Getting name
2020-05-23 20:02:06.640 6739-6739/? D/myTag: Did not find item

I'm logging "getting name" before the mInventoryConnector call, and trying to log the size of the list right afterwards to see if it's working, but the .getItems() function is giving me an error.

Any help is appreciated! Thank you!

clover developer communityInventory
10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

biviwi2824 avatar image
biviwi2824 answered

সবাইকে অভিবাদন। জুয়া এবং খেলাধুলার বাজির জন্য আমাকে একটি ভালো অনলাইন প্ল্যাটফর্ম বলুন।

10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

bosiyoc189 avatar image
bosiyoc189 answered

প্রিয় বন্ধুরা, আপনি যদি জুয়া এবং খেলাধুলার বাজির জন্য বিশ্বস্ত প্ল্যাটফর্ম খুঁজছেন, তাহলে Mostbet অফিসিয়াল ওয়েবসাইট -এ একবার চোখ বুলিয়ে দেখতে পারেন। এই প্ল্যাটফর্মটি বাংলাদেশের ব্যবহারকারীদের জন্য ক্রীড়া বাজি, লাইভ ক্যাসিনো, আকর্ষণীয় বোনাস এবং প্রচারমূলক অফার সহ নানাবিধ সুবিধা প্রদান করে। রেজিস্ট্রেশন প্রক্রিয়া খুবই সহজ, এবং তাদের মোবাইল অ্যাপের মাধ্যমে আপনি যেকোনো সময়, যেকোনো স্থান থেকে বাজি ধরতে পারবেন। নতুন ব্যবহারকারীদের জন্য প্রোমো কোড এবং টিপ্সের বিশদ গাইডও সাইটটিতে পাওয়া যায়, যা আপনার অভিজ্ঞতাকে আরও মসৃণ করবে। এছাড়াও, FAQ সেকশনে সাধারণ সমস্যাগুলোর সমাধান দেওয়া আছে, যা প্রাথমিক ব্যবহারে সাহায্য করবে। ব্যক্তিগতভাবে আমি তাদের লাইভ বেটিং অপশন এবং দ্রুত পেমেন্ট সিস্টেমের ভক্ত। আপনি যদি গেমিং ও বাজির জগতে সিরিয়াস হন, Mostbet নিঃসন্দেহে আপনার চাহিদা পূরণ করতে সক্ষম। ভালো করে এক্সপ্লোর করুন, সতর্কতার সাথে বাজি ধরুন!

10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

haryy avatar image
haryy answered

Make sure your app has the required permissions, such as com.clover.permission.MERCHANT_READ, in the AndroidManifest.xml. Also, check if CloverAccount.getAccount(this) is returning a valid account before making inventory calls. Try adding a delay before calling mInventoryConnector.getItems() to ensure the connection is fully established.

Meebhoomi

10 |2000

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Welcome to the
Clover Developer Community