예제 #1
0
 /// <summary>
 /// This method plays an <seealso cref="SmcItem"/>. If current player is not compatible with the type of item, then it will show
 /// device picker dialog;
 /// </summary>
 /// <param name="item"> an item to play </param>
 private void playItem(SmcItem item)
 {
     if (item.MediaType == SmcItem.MEDIA_TYPE_ITEM_IMAGE)
     {
         if (mPlayer is SmcImageViewer)
         {
             ((SmcImageViewer)mPlayer).show(item);
         }
         else
         {
             Toast.makeText(this, "Please select ImageViewer", Toast.LENGTH_SHORT).show();
             //mPlayerDevicePicker.setDeviceType(SmcDevice.TYPE_IMAGEVIEWER);
             mPlayerDevicePicker.showPickerDialog();
             mItemToPlay = item;
         }
     }
     else if (item.MediaType == SmcItem.MEDIA_TYPE_ITEM_AUDIO || item.MediaType == SmcItem.MEDIA_TYPE_ITEM_VIDEO)
     {
         if (mPlayer is SmcAvPlayer)
         {
             ((SmcAvPlayer)mPlayer).play(item, null);
         }
         else
         {
             Toast.makeText(this, "Please select AVPlayer", Toast.LENGTH_SHORT).show();
             //mPlayerDevicePicker.setDeviceType(SmcDevice.TYPE_AVPLAYER);
             mPlayerDevicePicker.showPickerDialog();
             mItemToPlay = item;
         }
     }
 }
예제 #2
0
		protected internal override void onCreate(Bundle savedInstanceState)
		{
			base.onCreate(savedInstanceState);
			ContentView = R.layout.uploader;

			mTargetDevicePicker = (DevicePicker) FragmentManager.findFragmentById(R.id.targetPicker);
			mTargetDevicePicker.DeviceType = SmcDevice.TYPE_PROVIDER;
			mTargetDevicePicker.DeviceSelectedListener = this;
			mUploadButton = (Button) findViewById(R.id.button);
			mUploadButton.OnClickListener = uploadClickListener;
			progressBar = (ProgressBar) findViewById(R.id.progress);


			SmcItem.LocalContent content = LocalContent;

			if (content == null)
			{
				Toast.makeText(this, "Content not supported", Toast.LENGTH_SHORT).show();
				this.finish();
			}
			else
			{
				itemToUpload = new SmcItem(content);
				((TextView)findViewById(R.id.header)).Text = "File: " + itemToUpload.Uri.ToString();
			}
		}
예제 #3
0
        protected internal override void onCreate(Bundle savedInstanceState)
        {
            base.onCreate(savedInstanceState);
            ContentView = R.layout.uploader;

            mTargetDevicePicker                        = (DevicePicker)FragmentManager.findFragmentById(R.id.targetPicker);
            mTargetDevicePicker.DeviceType             = SmcDevice.TYPE_PROVIDER;
            mTargetDevicePicker.DeviceSelectedListener = this;
            mUploadButton = (Button)findViewById(R.id.button);
            mUploadButton.OnClickListener = uploadClickListener;
            progressBar = (ProgressBar)findViewById(R.id.progress);


            SmcItem.LocalContent content = LocalContent;

            if (content == null)
            {
                Toast.makeText(this, "Content not supported", Toast.LENGTH_SHORT).show();
                this.finish();
            }
            else
            {
                itemToUpload = new SmcItem(content);
                ((TextView)findViewById(R.id.header)).Text = "File: " + itemToUpload.Uri.ToString();
            }
        }
예제 #4
0
 public override void onUpload(SmcProvider smcProvider, SmcItem smcItem, int error)
 {
     if (error != Smc.SUCCESS)
     {
         Toast.makeTextuniquetempvar.show();
     }
 }
예제 #5
0
 public override void onUploadCompleted(SmcProvider smcProvider, SmcItem smcItem)
 {
     mUploadButton.Text   = [email protected];
     progressBar.Progress = 0;
     uploadInProgress     = false;
     Toast.makeText(this, "File uploaded successfully", Toast.LENGTH_SHORT).show();
 }
예제 #6
0
 /// <summary>
 /// Lists contents of a directory.
 /// </summary>
 /// <param name="item"> directory to list </param>
 private void browse(SmcItem item)
 {
     if (mProvider != null)
     {
         mCurrentFolder = item;
         mItemAdapter.clear();
         mProvider.browse(item, 0, REQUEST_SIZE);
         findViewById(R.id.progress).Visibility = View.VISIBLE;
         findViewById(R.id.no_files).Visibility = View.GONE;
     }
 }
        /// <summary>
        /// Callback for response to play() device method.
        /// </summary>
        public override void onPlay(SmcAvPlayer device, SmcItem item, SmcAvPlayer.PlayInfo contentInfo, int error)
        {
            if (error != Smc.SUCCESS)
            {
                // Error has occurred.
                return;
            }

            // Notify controller of state change.
            State = PlayerState.PLAYING;
        }
예제 #8
0
        public override void onItemClick <T1>(AdapterView <T1> parent, View view, int position, long id)
        {
            SmcItem item = mItemAdapter.getItem(position);

            if (item.MediaType == SmcItem.MEDIA_TYPE_ITEM_FOLDER)
            {
                mItemStack.Push(mCurrentFolder);
                browse(item);
            }
            else
            {
                playItem(item);
            }
        }
        private void playItem()
        {
            registerListeners();

            State = PlayerState.INITIALIZING;

            SmcItem item = new SmcItem(new SmcItem.LocalContent(mContentUri.Path, mMimeType));

            // If seek() was called before player connected, it stored the position
            // and we can start playback from that position.
            SmcAvPlayer.PlayInfo info = new SmcAvPlayer.PlayInfo(mPosition);
            mPlayer.play(item, info);
            Log.d("MusicPlayer", "Starting playback at: " + mPosition);
        }
예제 #10
0
        /// <summary>
        /// Gets an icon resource for specific item type
        /// </summary>
        /// <param name="item"> an item </param>
        /// <returns> icon resource id </returns>
        private int getIconForItem(SmcItem item)
        {
            switch (item.MediaType)
            {
            case SmcItem.MEDIA_TYPE_ITEM_AUDIO:
                return(R.drawable.ic_musicplayer);

            case SmcItem.MEDIA_TYPE_ITEM_FOLDER:
                return(R.drawable.icon_myfiles);

            case SmcItem.MEDIA_TYPE_ITEM_IMAGE:
                return(R.drawable.ic_gallery);

            case SmcItem.MEDIA_TYPE_ITEM_VIDEO:
                return(R.drawable.ic_video_player);

            default:
                return(R.drawable.ic_launcher);
            }
        }
예제 #11
0
        private void playItem()
        {
            registerListeners();

            State = PlayerState.INITIALIZING;

            SmcItem item;

            if (mSubtitlesUri != null)
            {
                item = new SmcItem((new SmcItem.LocalContent(mContentUri.Path, mMimeType)).setSubTitle(mSubtitlesUri.Path));
            }
            else
            {
                item = new SmcItem(new SmcItem.LocalContent(mContentUri.Path, mMimeType));
            }

            // If seek() was called before player connected, it stored the position
            // and we can start playback from that position.
            SmcAvPlayer.PlayInfo info = new SmcAvPlayer.PlayInfo(mPosition);
            mPlayer.play(item, info);
        }
예제 #12
0
        public override bool onItemLongClick <T1>(AdapterView <T1> parent, View view, int position, long id)
        {
            SmcItem item = mItemAdapter.getItem(position);
            LinkedHashMap <string, string> props = new LinkedHashMap <string, string>();

            props.put(getString([email protected]), item.Title);
            if (item.MediaType == SmcItem.MEDIA_TYPE_ITEM_AUDIO)
            {
                props.put(getString([email protected]), item.Artist);
                props.put(getString([email protected]), item.AlbumTitle);
                props.put(getString([email protected]), item.Genre);
                props.put(getString([email protected]), item.Bitrate + " B/s");
                props.put(getString([email protected]), item.Duration + "s");
            }
            else if (item.MediaType == SmcItem.MEDIA_TYPE_ITEM_IMAGE)
            {
                props.put(getString([email protected]), item.Resolution);
                if (item.Location != null)
                {
                    props.put(getString([email protected]), item.Location.ToString());
                }
            }
            else if (item.MediaType == SmcItem.MEDIA_TYPE_ITEM_VIDEO)
            {
                props.put(getString([email protected]), item.Resolution);
                props.put(getString([email protected]), item.Bitrate + " B/s");
                props.put(getString([email protected]), item.Duration + "s");
                // } else if (item.getMediaType() == SmcItem.MEDIA_TYPE_ITEM_FOLDER) { // Prevent
            }
            props.put(getString([email protected]_type), item.MimeType);
            PropertiesDialog dialog = new PropertiesDialog();
            Bundle           b      = new Bundle();

            b.putSerializable("props", props);
            dialog.Arguments = b;
            dialog.show(FragmentManager, "props");
            return(true);
        }
예제 #13
0
 public override void onBrowse(SmcProvider smcProvider, IList <SmcItem> smcItems, int requestedStartIndex, int requestedCount, SmcItem requestedFolder, bool endOfItems, int error)
 {
 }
예제 #14
0
 public override void onUploadCancel(SmcProvider smcProvider, SmcItem smcItem, int error)
 {
     Toast.makeText(this, "Upload canceled", Toast.LENGTH_SHORT).show();
 }
예제 #15
0
		/// <summary>
		/// Gets an icon resource for specific item type
		/// </summary>
		/// <param name="item"> an item </param>
		/// <returns> icon resource id </returns>
		private int getIconForItem(SmcItem item)
		{
			switch (item.MediaType)
			{
				case SmcItem.MEDIA_TYPE_ITEM_AUDIO:
					return R.drawable.ic_musicplayer;
				case SmcItem.MEDIA_TYPE_ITEM_FOLDER:
					return R.drawable.icon_myfiles;
				case SmcItem.MEDIA_TYPE_ITEM_IMAGE:
					return R.drawable.ic_gallery;
				case SmcItem.MEDIA_TYPE_ITEM_VIDEO:
					return R.drawable.ic_video_player;
				default:
					return R.drawable.ic_launcher;
			}
		}
예제 #16
0
		private void playItem()
		{
			registerListeners();

			State = PlayerState.INITIALIZING;

			SmcItem item = new SmcItem(new SmcItem.LocalContent(mContentUri.Path,mMimeType));
			// If seek() was called before player connected, it stored the position
			// and we can start playback from that position.
			SmcAvPlayer.PlayInfo info = new SmcAvPlayer.PlayInfo(mPosition);
			mPlayer.play(item, info);
			Log.d("MusicPlayer", "Starting playback at: " + mPosition);
		}
예제 #17
0
		public override void onUploadCancel(SmcProvider smcProvider, SmcItem smcItem, int error)
		{
			Toast.makeText(this, "Upload canceled", Toast.LENGTH_SHORT).show();
		}
예제 #18
0
		public override void onBrowse(SmcProvider smcProvider, IList<SmcItem> smcItems, int requestedStartIndex, int requestedCount, SmcItem requestedFolder, bool endOfItems, int error)
		{

		}
예제 #19
0
		public override void onUploadProgressUpdated(SmcProvider smcProvider, long receivedSize, long totalSize, SmcItem smcItem, int error)
		{
			progressBar.Max = (int) totalSize;
			progressBar.Progress = (int) receivedSize;
		}
예제 #20
0
		public override void onUploadCompleted(SmcProvider smcProvider, SmcItem smcItem)
		{
			mUploadButton.Text = [email protected];
			progressBar.Progress = 0;
			uploadInProgress = false;
			Toast.makeText(this, "File uploaded successfully", Toast.LENGTH_SHORT).show();
		}
예제 #21
0
        public override View getView(int position, View convertView, ViewGroup parent)
        {
            ImageView icon;
            TextView  name, size, date;

            if (convertView == null)
            {
                convertView = inflater.inflate(R.layout.item, null);
                icon        = (ImageView)convertView.findViewById(R.id.icon);
                name        = (TextView)convertView.findViewById(R.id.name);
                size        = (TextView)convertView.findViewById(R.id.size);
                date        = (TextView)convertView.findViewById(R.id.date);
                convertView.setTag(R.id.icon, icon);
                convertView.setTag(R.id.name, name);
                convertView.setTag(R.id.size, size);
                convertView.setTag(R.id.date, date);
            }
            else
            {
                icon = (ImageView)convertView.getTag(R.id.icon);
                name = (TextView)convertView.getTag(R.id.name);
                size = (TextView)convertView.getTag(R.id.size);
                date = (TextView)convertView.getTag(R.id.date);
            }
            SmcItem item = getItem(position);

            //set title
            name.Text = item.Title;
            //set size
            if (item.MediaType == SmcItem.MEDIA_TYPE_ITEM_FOLDER)
            {
                size.Text = "<DIR>";
            }
            else
            {
                size.Text = getSize(item.FileSize);
            }
            //set date
            if (item.Date != null)
            {
                date.Text = dateFormat.format(item.Date);
            }
            else
            {
                date.Text = null;
            }
            //load icon
            Uri iconPath = item.Thumbnail;

            icon.Tag = iconPath;
            if (iconPath != null)
            {
                Bitmap b = IconCache.Instance.get(iconPath);
                if (b == null)
                {
                    // Clear the image so we don't display stale icon.
                    icon.ImageResource = getIconForItem(item);
                    (new IconLoader(icon)).execute(iconPath);
                }
                else
                {
                    icon.ImageBitmap = b;
                }
            }
            else
            {
                icon.ImageResource = getIconForItem(item);
            }
            return(convertView);
        }
예제 #22
0
 public override void onUploadProgressUpdated(SmcProvider smcProvider, long receivedSize, long totalSize, SmcItem smcItem, int error)
 {
     progressBar.Max      = (int)totalSize;
     progressBar.Progress = (int)receivedSize;
 }
예제 #23
0
		private void playItem()
		{
			registerListeners();

			State = PlayerState.INITIALIZING;

			SmcItem item;
			if (mSubtitlesUri != null)
			{
				item = new SmcItem((new SmcItem.LocalContent(mContentUri.Path, mMimeType)).setSubTitle(mSubtitlesUri.Path));
			}
			else
			{
				item = new SmcItem(new SmcItem.LocalContent(mContentUri.Path,mMimeType));
			}

			// If seek() was called before player connected, it stored the position
			// and we can start playback from that position.
			SmcAvPlayer.PlayInfo info = new SmcAvPlayer.PlayInfo(mPosition);
			mPlayer.play(item, info);
		}
예제 #24
0
 public override void onBrowse(SmcProvider smcProvider, IList <SmcItem> items, int requestedStartIndex, int requestedCount, SmcItem requestedFolderItem, bool endOfItems, int error)
 {
     mItemAdapter.add(items);
     if (endOfItems)
     {
         onBrowseComplete();
     }
     else
     {
         //if the callback didn't return full list of files, make request for the rest of them
         mProvider.browse(requestedFolderItem, requestedStartIndex + items.Count, REQUEST_SIZE);
     }
 }
예제 #25
0
		public override void onUpload(SmcProvider smcProvider, SmcItem smcItem, int error)
		{
			if (error != Smc.SUCCESS)
			{
				Toast.makeTextuniquetempvar.show();
			}
		}
예제 #26
0
 public override void onUploadCancel(SmcProvider smcProvider, SmcItem Item, int error)
 {
     //To change body of implemented methods use File | Settings | File Templates.
 }
예제 #27
0
		/// <summary>
		/// Callback for response to play() device method.
		/// </summary>
		public override void onPlay(SmcAvPlayer device, SmcItem item, SmcAvPlayer.PlayInfo contentInfo, int error)
		{
			if (error != Smc.SUCCESS)
			{
				// Error has occurred.
				return;
			}

			// Notify controller of state change.
			State = PlayerState.PLAYING;
		}