Esempio n. 1
0
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    /* 清除共享区内的信息 */
    SharedPreferences pf = getSharedPreferences("partition", 0);
    SharedPreferences.Editor editor = pf.edit();
    editor.clear();

    mMedia = new MediaProvider(this);
    mDevices = new DeviceManager(this);
    mHandler = new EventHandler(this, this, mMedia, mDevices);

    mTable = mHandler.new TableRow();
    mMenuListener = mHandler.new MenuItemListener();

    /* 设置信息预览栏内容 */
    mThumb = (LinearLayout) findViewById(R.id.thumb);
    mVideo = (SurfaceView) findViewById(R.id.thumb_movie);
    mImage = (ImageView) findViewById(R.id.thumbnail);

    Drawable bp = getResources().getDrawable(R.drawable.thumbnail_equipment);
    Bitmap m = ((BitmapDrawable) bp).getBitmap();

    mPreview = (TextView) findViewById(R.id.preview);
    mPath = (TextView) findViewById(R.id.path);
    mIndex = (TextView) findViewById(R.id.index);
    mHandler.setViewResource(mVideo, mImage, mPreview, mPath, mIndex);

    /* 把ListView 与 TableRow 绑定,并监听items的被选中事件 */
    list = getListView();
    mHandler.setListAdapter(mTable, list);
    list.setAdapter(mTable);
    list.setOnItemSelectedListener(mHandler);
    list.setOnItemClickListener(mHandler);
    list.setOnItemLongClickListener(mHandler);

    /* 设置监听导航栏的菜单item */
    Button devices = (Button) findViewById(R.id.device_button);
    Button video = (Button) findViewById(R.id.video_button);
    Button picture = (Button) findViewById(R.id.picture_button);
    Button music = (Button) findViewById(R.id.music_button);
    Button file = (Button) findViewById(R.id.file_button);
    devices.setOnClickListener(mHandler);
    video.setOnClickListener(mHandler);
    picture.setOnClickListener(mHandler);
    music.setOnClickListener(mHandler);
    file.setOnClickListener(mHandler);

    /* 读取传进来的参数决定过滤类型  */
    Bundle b = getIntent().getExtras();
    if (b != null) {
      String action = b.getString("media_type");
      if (action != null) {
        if (action.equals("MEDIA_TYPE_MUSIC")) {
          mHandler.setFilterType(mMedia.MUSIC_FILTER);
          music.performClick();
        } else if (action.equals("MEDIA_TYPE_PICTURE")) {
          mHandler.setFilterType(mMedia.PICTURE_FILTER);
          picture.performClick();
        } else if (action.equals("MEDIA_TYPE_VIDEO")) {
          mHandler.setFilterType(mMedia.MOVIE_FILTER);
          video.performClick();
        } else if (action.equals("MEDIA_TYPE_ALL")) {
          mHandler.setFilterType(mMedia.ALLTYPE_FILTER);
          file.performClick();
        } else {
          devices.performClick();
        }
      } else {
        Log.d(TAG, "started by other parames");
        devices.performClick();
      }
    } else {
      devices.performClick();
    }

    /* 设置option菜单栏信息 */
    createMenu();

    /* 增加热插拔功能 */
    mReceiver =
        new BroadcastReceiver() {
          @Override
          public void onReceive(Context context, Intent intent) {
            String tmpstring = intent.getData().getPath();
            Log.d(TAG, "devices path:" + tmpstring);
            if (intent.getAction().equals(intent.ACTION_MEDIA_REMOVED)
                || intent.getAction().equals(intent.ACTION_MEDIA_BAD_REMOVAL)) {
              /* 等待1秒钟再刷新界面,这是因为底层发出卸载信号时,有时实际上还没卸载掉设备 */
              try {
                Thread.currentThread().sleep(500);
              } catch (Exception e) {
              }
              ;
              if (mHandler.currentDir.startsWith(tmpstring) || mHandler.isDeviceList()) {
                showDeviceList();
              }
              if (mDevices.isInterStoragePath(tmpstring)) {
                // DisplayToast(getResources().getString(R.string.flash_out));
              } else if (mDevices.isSdStoragePath(tmpstring)) {
                DisplayToast(getResources().getString(R.string.sdcard_out));
              } else if (mDevices.isUsbStoragePath(tmpstring)) {
                DisplayToast(getResources().getString(R.string.usb_out));
              }

            } else if (intent.getAction().equals(intent.ACTION_MEDIA_MOUNTED)) {
              if (mHandler.isDeviceList()) {
                showDeviceList();
              }
              if (mDevices.isInterStoragePath(tmpstring)) {
                // DisplayToast(getResources().getString(R.string.flash_in));
              } else if (mDevices.isSdStoragePath(tmpstring)) {
                DisplayToast(getResources().getString(R.string.sdcard_in));
              } else if (mDevices.isUsbStoragePath(tmpstring)) {
                DisplayToast(getResources().getString(R.string.usb_in));
              }
            }
          }
        };
    IntentFilter filter = new IntentFilter();
    filter.addAction(Intent.ACTION_MEDIA_MOUNTED);
    filter.addAction(Intent.ACTION_MEDIA_REMOVED);
    filter.addAction(Intent.ACTION_MEDIA_BAD_REMOVAL);
    filter.addDataScheme("file");
    registerReceiver(mReceiver, filter);

    if (getIntent().getAction() != null) {
      if (getIntent().getAction().equals("com.softwinner.action.GET_FILE")) {
        returnFile = true;
      }
    }
  }