Android Open Source - sdl_tester_android Soft Button List Dialog






From Project

Back to project page sdl_tester_android.

License

The source code is released under:

Copyright (c) 2014, Ford Motor Company All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are m...

If you think the Android project sdl_tester_android listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.livio.sdltester.dialogs;
/*from  w ww .  j  a v  a2s  .  co m*/
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;

import android.content.Context;
import android.content.DialogInterface;
import android.graphics.Bitmap;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;

import com.livio.sdl.SdlImageItem;
import com.livio.sdl.SdlImageItem.SdlImageItemComparator;
import com.livio.sdl.adapters.SdlImageAdapter;
import com.livio.sdl.dialogs.BaseAlertDialog;
import com.livio.sdl.dialogs.BaseOkCancelDialog;
import com.livio.sdl.dialogs.TextViewOkCancelDialog;
import com.livio.sdltester.R;
import com.smartdevicelink.proxy.rpc.SoftButton;
import com.smartdevicelink.proxy.rpc.enums.FileType;


public class SoftButtonListDialog extends BaseOkCancelDialog{

    private static final String DIALOG_TITLE = "Create Soft Buttons";

    private static final int MAX_BUTTONS = 10;
    
    private List<SoftButton> softButtonItemList = new ArrayList<SoftButton>(MAX_BUTTONS);
    
    private Button but_addItem;
    private ListView lv_softButtonItems;
    private ArrayAdapter<SdlImageItem> adapter;
    private List<SdlImageItem> adapterList = new ArrayList<SdlImageItem>(MAX_BUTTONS);
    
    private BaseAlertDialog softButtonDialog = null;
    private List<SdlImageItem> allImages;
    
    public SoftButtonListDialog(Context context, List<SdlImageItem> images){
        super(context, DIALOG_TITLE, R.layout.create_choice_interaction_set);
        setPositiveButton(okButtonListener);
        adapter = new SdlImageAdapter(context, adapterList);
        lv_softButtonItems.setAdapter(adapter);
        this.allImages = images;
        createDialog();
    }

    @Override
    protected void findViews(View parent) {
        lv_softButtonItems = (ListView) view.findViewById(R.id.lv_choices);
        lv_softButtonItems.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, final int position, long id) {
                BaseAlertDialog deleteDialog = new TextViewOkCancelDialog(context, "Delete", "Do you want to delete this item?");
                deleteDialog.setListener(new BaseAlertDialog.Listener() {
                    @Override
                    public void onResult(Object resultData) {
                        boolean delete = (Boolean) resultData;
                        if(delete){
                            softButtonItemList.remove(position);
                            adapterList.remove(position);
                            adapter.notifyDataSetChanged();
                        }
                    }
                });
                deleteDialog.show();
            }
        });
        but_addItem = (Button) view.findViewById(R.id.but_addItem);
        but_addItem.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showSoftButtonDialog();
            }
        });
    }
    
    private void showSoftButtonDialog(){
        softButtonDialog = new SoftButtonItemDialog(context, allImages);
        softButtonDialog.setListener(new BaseAlertDialog.Listener() {
            @Override
            public void onResult(Object resultData) {
                SoftButton button = (SoftButton) resultData;
                addSoftButtonToList(button);
            }
        });
        softButtonDialog.show();
    }
    
    private void addSoftButtonToList(SoftButton button){
        softButtonItemList.add(button);
        
        if(button.getImage() != null){
            // if user selected an image, figure out which one they selected
            int imageIndex = Collections.binarySearch(allImages, new SdlImageItem(null, button.getImage().getValue(), null), new SdlImageItemComparator());
            if(imageIndex >= 0 && imageIndex < allImages.size()){
                SdlImageItem item = allImages.get(imageIndex);
                adapter.add(new SdlImageItem(item.getBitmap(), button.getText(), FileType.GRAPHIC_JPEG));
                adapter.notifyDataSetChanged();
            }
        }
        else{
            // if the user didn't select an image, we'll create an empty one to display in the adapter
            Bitmap image = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
            adapter.add(new SdlImageItem(image, button.getText(), FileType.GRAPHIC_JPEG));
            adapter.notifyDataSetChanged();
        }
    }
    
    //dialog button listeners
    private final DialogInterface.OnClickListener okButtonListener = new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            Vector<SoftButton> softButtonItems = new Vector<SoftButton>(softButtonItemList);
            
            if(softButtonItems.size() > 0){
                notifyListener(softButtonItems);
            }
        }
    };

}




Java Source Code List

com.livio.sdl.IdGenerator.java
com.livio.sdl.IpAddress.java
com.livio.sdl.SdlConstants.java
com.livio.sdl.SdlImageItem.java
com.livio.sdl.SdlLogMessage.java
com.livio.sdl.SdlRequestFactory.java
com.livio.sdl.SdlResponseFactory.java
com.livio.sdl.SdlResponseTracker.java
com.livio.sdl.SdlService.java
com.livio.sdl.adapters.SdlImageAdapter.java
com.livio.sdl.adapters.SdlMessageAdapter.java
com.livio.sdl.dialogs.BaseAlertDialog.java
com.livio.sdl.dialogs.BaseImageListDialog.java
com.livio.sdl.dialogs.BaseMultipleListViewDialog.java
com.livio.sdl.dialogs.BaseOkCancelDialog.java
com.livio.sdl.dialogs.BaseSingleListViewDialog.java
com.livio.sdl.dialogs.ImageListDialog.java
com.livio.sdl.dialogs.IndeterminateProgressDialog.java
com.livio.sdl.dialogs.JsonFlipperDialog.java
com.livio.sdl.dialogs.ListViewDialog.java
com.livio.sdl.dialogs.MultipleListViewDialog.java
com.livio.sdl.dialogs.SingleJsonDialog.java
com.livio.sdl.dialogs.TextViewAlertDialog.java
com.livio.sdl.dialogs.TextViewOkCancelDialog.java
com.livio.sdl.enums.EnumClickListener.java
com.livio.sdl.enums.EnumComparator.java
com.livio.sdl.enums.SdlButton.java
com.livio.sdl.enums.SdlCommand.java
com.livio.sdl.enums.SdlImageType.java
com.livio.sdl.enums.SdlInteractionMode.java
com.livio.sdl.enums.SdlLanguage.java
com.livio.sdl.enums.SdlSpeechCapability.java
com.livio.sdl.enums.SdlSystemAction.java
com.livio.sdl.enums.SdlTextAlignment.java
com.livio.sdl.enums.SdlTransportType.java
com.livio.sdl.enums.SdlUpdateMode.java
com.livio.sdl.enums.SdlVehicleData.java
com.livio.sdl.menu.CommandButton.java
com.livio.sdl.menu.MenuItem.java
com.livio.sdl.menu.MenuManager.java
com.livio.sdl.menu.SubmenuButton.java
com.livio.sdl.utils.AndroidUtils.java
com.livio.sdl.utils.ApplicationPreferences.java
com.livio.sdl.utils.Counter.java
com.livio.sdl.utils.DownCounter.java
com.livio.sdl.utils.MathUtils.java
com.livio.sdl.utils.SdlUtils.java
com.livio.sdl.utils.StringUtils.java
com.livio.sdl.utils.Timeout.java
com.livio.sdl.utils.UpCounter.java
com.livio.sdl.utils.WifiUtils.java
com.livio.sdl.viewhelpers.MinMaxInputFilter.java
com.livio.sdl.viewhelpers.SeekBarCalculator.java
com.livio.sdltester.HelpActivity.java
com.livio.sdltester.LivioSdlTesterPreferences.java
com.livio.sdltester.MainActivity.java
com.livio.sdltester.SdlTesterImageResource.java
com.livio.sdltester.dialogs.AddCommandDialog.java
com.livio.sdltester.dialogs.AddSubMenuDialog.java
com.livio.sdltester.dialogs.ButtonSubscriptionDialog.java
com.livio.sdltester.dialogs.ButtonUnsubscriptionDialog.java
com.livio.sdltester.dialogs.ChangeRegistrationDialog.java
com.livio.sdltester.dialogs.ChoiceItemDialog.java
com.livio.sdltester.dialogs.CreateInteractionChoiceSetDialog.java
com.livio.sdltester.dialogs.DeleteCommandDialog.java
com.livio.sdltester.dialogs.DeleteFileDialog.java
com.livio.sdltester.dialogs.DeleteInteractionDialog.java
com.livio.sdltester.dialogs.DeleteSubmenuDialog.java
com.livio.sdltester.dialogs.GetDtcsDialog.java
com.livio.sdltester.dialogs.PerformInteractionDialog.java
com.livio.sdltester.dialogs.PutFileDialog.java
com.livio.sdltester.dialogs.ReadDidsDialog.java
com.livio.sdltester.dialogs.ScrollableMessageDialog.java
com.livio.sdltester.dialogs.SdlAlertDialog.java
com.livio.sdltester.dialogs.SdlConnectionDialog.java
com.livio.sdltester.dialogs.SetAppIconDialog.java
com.livio.sdltester.dialogs.SetMediaClockTimerDialog.java
com.livio.sdltester.dialogs.ShowDialog.java
com.livio.sdltester.dialogs.SliderDialog.java
com.livio.sdltester.dialogs.SoftButtonItemDialog.java
com.livio.sdltester.dialogs.SoftButtonListDialog.java
com.livio.sdltester.dialogs.SpeakDialog.java