Android Open Source - sdl_tester_android Create Interaction Choice Set 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 w  w  .java  2s. c  o 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 android.widget.Toast;

import com.livio.sdl.IdGenerator;
import com.livio.sdl.SdlImageItem;
import com.livio.sdl.SdlImageItem.SdlImageItemComparator;
import com.livio.sdl.SdlRequestFactory;
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.sdl.enums.SdlCommand;
import com.livio.sdltester.R;
import com.smartdevicelink.proxy.rpc.Choice;
import com.smartdevicelink.proxy.rpc.CreateInteractionChoiceSet;
import com.smartdevicelink.proxy.rpc.enums.FileType;

public class CreateInteractionChoiceSetDialog extends BaseOkCancelDialog{

  private static final SdlCommand SYNC_COMMAND = SdlCommand.CREATE_INTERACTION_CHOICE_SET;
  private static final String DIALOG_TITLE = SYNC_COMMAND.toString();

  private static final int MAX_CHOICES = 10;
  
  private List<Choice> choiceItemList = new ArrayList<Choice>(MAX_CHOICES);
  
  private Button but_addItem;
  private ListView lv_choiceItems;
  private ArrayAdapter<SdlImageItem> adapter;
  private List<SdlImageItem> adapterList = new ArrayList<SdlImageItem>(MAX_CHOICES);
  
  private BaseAlertDialog choiceDialog = null;
  private List<SdlImageItem> allImages;
  
  public CreateInteractionChoiceSetDialog(Context context, List<SdlImageItem> images){
    super(context, DIALOG_TITLE, R.layout.create_choice_interaction_set);
    setPositiveButton(okButtonListener);
    adapter = new SdlImageAdapter(context, adapterList);
    lv_choiceItems.setAdapter(adapter);
    this.allImages = images;
    createDialog();
  }

  @Override
  protected void findViews(View parent) {
    lv_choiceItems = (ListView) view.findViewById(R.id.lv_choices);
    lv_choiceItems.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){
              choiceItemList.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) {
        showChoiceDialog();
      }
    });
  }
  
  private void showChoiceDialog(){
    choiceDialog = new ChoiceItemDialog(context, allImages);
    choiceDialog.setListener(new BaseAlertDialog.Listener() {
      @Override
      public void onResult(Object resultData) {
        Choice choice = (Choice) resultData;
        addChoiceToList(choice);
      }
    });
    choiceDialog.show();
  }
  
  private void addChoiceToList(Choice choice){
    choiceItemList.add(choice);
    
    if(choice.getImage() != null){
      // if user selected an image, figure out which one they selected
      int imageIndex = Collections.binarySearch(allImages, new SdlImageItem(null, choice.getImage().getValue(), null), new SdlImageItemComparator());
      if(imageIndex >= 0 && imageIndex < allImages.size()){
        SdlImageItem item = allImages.get(imageIndex);
        adapter.add(new SdlImageItem(item.getBitmap(), choice.getMenuName(), 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, choice.getMenuName(), 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<Choice> choiceItems = new Vector<Choice>(choiceItemList);
      
      if(choiceItems.size() > 0){
          for(Choice choice : choiceItems){
              choice.setChoiceID(IdGenerator.next());
          }
        CreateInteractionChoiceSet result = (CreateInteractionChoiceSet) SdlRequestFactory.createInteractionChoiceSet(choiceItems);
        notifyListener(result);
      }
      else{
        Toast.makeText(context, "Must enter at least 1 choice name.", Toast.LENGTH_LONG).show();
      }
    }
  };

}




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