Example #1
0
  /** 向Folder添加ShortcutInfo */
  protected boolean createAndAddShortcut(ShortcutInfo item) {
    final TextView textView = (TextView) mInflater.inflate(R.layout.application, this, false);
    textView.setCompoundDrawablesWithIntrinsicBounds(
        null, new FastBitmapDrawable(item.getIcon(mIconCache)), null, null);
    textView.setText(item.title);
    textView.setTag(item);

    textView.setOnClickListener(this);
    textView.setOnLongClickListener(this);

    // 检查这个地方是否被其他item占据
    if (mContent.getChildAt(item.cellX, item.cellY) != null
        || item.cellX < 0
        || item.cellY < 0
        || item.cellX >= mContent.getCountX()
        || item.cellY >= mContent.getCountY()) {
      // 其实不应该发生
      Log.e(TAG, "Folder order not properly persisted during bind");
      if (!findAndSetEmptyCells(item)) {
        return false;
      }
    }

    CellLayout.LayoutParams lp =
        new CellLayout.LayoutParams(item.cellX, item.cellY, item.spanX, item.spanY);
    boolean insert = false;
    textView.setOnKeyListener(new FolderKeyEventListener());
    mContent.addViewToCellLayout(textView, insert ? 0 : -1, (int) item.id, lp, true);
    return true;
  }
Example #2
0
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   textView = new TextView(this);
   textView.setText("Press keys (if you have some)!");
   textView.setOnKeyListener(this);
   textView.setFocusableInTouchMode(true);
   textView.requestFocus();
   setContentView(textView);
 }
Example #3
0
  @Override
  public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.act_hostlist);

    this.setTitle(
        String.format(
            "%s: %s",
            getResources().getText(R.string.app_name),
            getResources().getText(R.string.title_hosts_list)));

    // check for eula agreement
    this.prefs = PreferenceManager.getDefaultSharedPreferences(this);

    boolean agreed = prefs.getBoolean(PreferenceConstants.EULA, false);
    if (!agreed) {
      this.startActivityForResult(new Intent(this, WizardActivity.class), REQUEST_EULA);
    }

    this.makingShortcut =
        Intent.ACTION_CREATE_SHORTCUT.equals(getIntent().getAction())
            || Intent.ACTION_PICK.equals(getIntent().getAction());

    // connect with hosts database and populate list
    this.hostdb = new HostDatabase(this);
    ListView list = this.getListView();

    this.sortedByColor = prefs.getBoolean(PreferenceConstants.SORT_BY_COLOR, false);

    // this.list.setSelector(R.drawable.highlight_disabled_pressed);

    list.setOnItemClickListener(
        new OnItemClickListener() {

          public synchronized void onItemClick(
              AdapterView<?> parent, View view, int position, long id) {

            // launch off to console details
            HostBean host = (HostBean) parent.getAdapter().getItem(position);
            Uri uri = host.getUri();

            Intent contents = new Intent(Intent.ACTION_VIEW, uri);
            contents.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

            if (makingShortcut) {
              // create shortcut if requested
              ShortcutIconResource icon =
                  Intent.ShortcutIconResource.fromContext(HostListActivity.this, R.drawable.icon);

              Intent intent = new Intent();
              intent.putExtra(Intent.EXTRA_SHORTCUT_INTENT, contents);
              intent.putExtra(Intent.EXTRA_SHORTCUT_NAME, host.getNickname());
              intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE, icon);

              setResult(RESULT_OK, intent);
              finish();

            } else {
              // otherwise just launch activity to show this host
              HostListActivity.this.startActivity(contents);
            }
          }
        });

    this.registerForContextMenu(list);

    quickconnect = (TextView) this.findViewById(R.id.front_quickconnect);
    quickconnect.setVisibility(makingShortcut ? View.GONE : View.VISIBLE);
    quickconnect.setOnKeyListener(
        new OnKeyListener() {

          public boolean onKey(View v, int keyCode, KeyEvent event) {

            if (event.getAction() == KeyEvent.ACTION_UP) return false;
            if (keyCode != KeyEvent.KEYCODE_ENTER) return false;

            return startConsoleActivity();
          }
        });

    transportSpinner = (Spinner) findViewById(R.id.transport_selection);
    transportSpinner.setVisibility(makingShortcut ? View.GONE : View.VISIBLE);
    ArrayAdapter<String> transportSelection =
        new ArrayAdapter<String>(
            this, android.R.layout.simple_spinner_item, TransportFactory.getTransportNames());
    transportSelection.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    transportSpinner.setOnItemSelectedListener(
        new AdapterView.OnItemSelectedListener() {
          public void onItemSelected(AdapterView<?> arg0, View view, int position, long id) {
            String formatHint =
                TransportFactory.getFormatHint(
                    (String) transportSpinner.getSelectedItem(), HostListActivity.this);

            quickconnect.setHint(formatHint);
            quickconnect.setError(null);
            quickconnect.requestFocus();
          }

          public void onNothingSelected(AdapterView<?> arg0) {}
        });
    transportSpinner.setAdapter(transportSelection);

    this.inflater = LayoutInflater.from(this);
  }
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (getShowsDialog()) {
      getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    }

    View view = inflater.inflate(R.layout.radial_time_picker_dialog, null);
    KeyboardListener keyboardListener = new KeyboardListener();
    view.findViewById(R.id.time_picker_dialog).setOnKeyListener(keyboardListener);

    Resources res = getResources();
    mHourPickerDescription = res.getString(R.string.hour_picker_description);
    mSelectHours = res.getString(R.string.select_hours);
    mMinutePickerDescription = res.getString(R.string.minute_picker_description);
    mSelectMinutes = res.getString(R.string.select_minutes);
    mSelectedColor = res.getColor(mThemeDark ? R.color.red : R.color.blue);
    mUnselectedColor = res.getColor(mThemeDark ? R.color.white : R.color.numbers_text_color);

    mHourView = (TextView) view.findViewById(R.id.hours);
    mHourView.setOnKeyListener(keyboardListener);
    mHourSpaceView = (TextView) view.findViewById(R.id.hour_space);
    mMinuteSpaceView = (TextView) view.findViewById(R.id.minutes_space);
    mMinuteView = (TextView) view.findViewById(R.id.minutes);
    mMinuteView.setOnKeyListener(keyboardListener);
    mAmPmTextView = (TextView) view.findViewById(R.id.ampm_label);
    mAmPmTextView.setOnKeyListener(keyboardListener);
    String[] amPmTexts = new DateFormatSymbols().getAmPmStrings();
    mAmText = amPmTexts[0];
    mPmText = amPmTexts[1];

    mHapticFeedbackController = new HapticFeedbackController(getActivity());

    mTimePicker = (RadialPickerLayout) view.findViewById(R.id.time_picker);
    mTimePicker.setOnValueSelectedListener(this);
    mTimePicker.setOnKeyListener(keyboardListener);
    mTimePicker.initialize(
        getActivity(), mHapticFeedbackController, mInitialHourOfDay, mInitialMinute, mIs24HourMode);

    int currentItemShowing = HOUR_INDEX;
    if (savedInstanceState != null && savedInstanceState.containsKey(KEY_CURRENT_ITEM_SHOWING)) {
      currentItemShowing = savedInstanceState.getInt(KEY_CURRENT_ITEM_SHOWING);
    }
    setCurrentItemShowing(currentItemShowing, false, true, true);
    mTimePicker.invalidate();

    mHourView.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            setCurrentItemShowing(HOUR_INDEX, true, false, true);
            tryVibrate();
          }
        });
    mMinuteView.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            setCurrentItemShowing(MINUTE_INDEX, true, false, true);
            tryVibrate();
          }
        });

    mDoneButton = (TextView) view.findViewById(R.id.done_button);
    if (mDoneText != null) {
      mDoneButton.setText(mDoneText);
    }
    mDoneButton.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            if (mInKbMode && isTypedTimeFullyLegal()) {
              finishKbMode(false);
            } else {
              tryVibrate();
            }
            if (mCallback != null) {
              mCallback.onTimeSet(
                  RadialTimePickerDialog.this, mTimePicker.getHours(), mTimePicker.getMinutes());
            }
            dismiss();
          }
        });
    mDoneButton.setOnKeyListener(keyboardListener);

    // Enable or disable the AM/PM view.
    mAmPmHitspace = view.findViewById(R.id.ampm_hitspace);
    if (mIs24HourMode) {
      mAmPmTextView.setVisibility(View.GONE);

      RelativeLayout.LayoutParams paramsSeparator =
          new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
      paramsSeparator.addRule(RelativeLayout.CENTER_IN_PARENT);
      TextView separatorView = (TextView) view.findViewById(R.id.separator);
      separatorView.setLayoutParams(paramsSeparator);
    } else {
      mAmPmTextView.setVisibility(View.VISIBLE);
      updateAmPmDisplay(mInitialHourOfDay < 12 ? AM : PM);
      mAmPmHitspace.setOnClickListener(
          new OnClickListener() {
            @Override
            public void onClick(View v) {
              tryVibrate();
              int amOrPm = mTimePicker.getIsCurrentlyAmOrPm();
              if (amOrPm == AM) {
                amOrPm = PM;
              } else if (amOrPm == PM) {
                amOrPm = AM;
              }
              updateAmPmDisplay(amOrPm);
              mTimePicker.setAmOrPm(amOrPm);
            }
          });
    }

    mAllowAutoAdvance = true;
    setHour(mInitialHourOfDay, true);
    setMinute(mInitialMinute);

    // Set up for keyboard mode.
    mDoublePlaceholderText = res.getString(R.string.time_placeholder);
    mDeletedKeyFormat = res.getString(R.string.deleted_key);
    mPlaceholderText = mDoublePlaceholderText.charAt(0);
    mAmKeyCode = mPmKeyCode = -1;
    generateLegalTimesTree();
    if (mInKbMode) {
      mTypedTimes = savedInstanceState.getIntegerArrayList(KEY_TYPED_TIMES);
      tryStartingKbMode(-1);
      mHourView.invalidate();
    } else if (mTypedTimes == null) {
      mTypedTimes = new ArrayList<Integer>();
    }

    // Set the theme at the end so that the initialize()s above don't counteract the theme.
    mTimePicker.setTheme(getActivity().getApplicationContext(), mThemeDark);
    // Prepare some colors to use.
    int white = res.getColor(R.color.white);
    int circleBackground = res.getColor(R.color.circle_background);
    int line = res.getColor(R.color.line_background);
    int timeDisplay = res.getColor(R.color.numbers_text_color);
    ColorStateList doneTextColor = res.getColorStateList(R.color.done_text_color);
    int doneBackground = R.drawable.done_background_color;

    int darkGray = res.getColor(R.color.dark_gray);
    int lightGray = res.getColor(R.color.light_gray);
    int darkLine = res.getColor(R.color.line_dark);
    ColorStateList darkDoneTextColor = res.getColorStateList(R.color.done_text_color_dark);
    int darkDoneBackground = R.drawable.done_background_color_dark;

    // Set the colors for each view based on the theme.
    view.findViewById(R.id.time_display_background)
        .setBackgroundColor(mThemeDark ? darkGray : white);
    view.findViewById(R.id.time_display).setBackgroundColor(mThemeDark ? darkGray : white);
    ((TextView) view.findViewById(R.id.separator)).setTextColor(mThemeDark ? white : timeDisplay);
    ((TextView) view.findViewById(R.id.ampm_label)).setTextColor(mThemeDark ? white : timeDisplay);
    view.findViewById(R.id.line).setBackgroundColor(mThemeDark ? darkLine : line);
    mDoneButton.setTextColor(mThemeDark ? darkDoneTextColor : doneTextColor);
    mTimePicker.setBackgroundColor(mThemeDark ? lightGray : circleBackground);
    mDoneButton.setBackgroundResource(mThemeDark ? darkDoneBackground : doneBackground);
    return view;
  }
  @Override
  public View onCreateView(
      LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    if (getShowsDialog()) {
      getDialog().getWindow().requestFeature(Window.FEATURE_NO_TITLE);
    }

    View view = inflater.inflate(R.layout.radial_time_picker_dialog, null);
    KeyboardListener keyboardListener = new KeyboardListener();
    view.findViewById(R.id.time_picker_dialog).setOnKeyListener(keyboardListener);

    Resources res = getResources();
    TypedArray themeColors =
        getActivity().obtainStyledAttributes(mStyleResId, R.styleable.BetterPickersDialogs);

    // Prepare some colors to use.
    int headerBgColor =
        themeColors.getColor(
            R.styleable.BetterPickersDialogs_bpHeaderBackgroundColor, R.color.bpBlue);
    int bodyBgColor =
        themeColors.getColor(
            R.styleable.BetterPickersDialogs_bpBodyBackgroundColor, R.color.bpWhite);
    int buttonBgColor =
        themeColors.getColor(
            R.styleable.BetterPickersDialogs_bpButtonsBackgroundColor, R.color.bpWhite);
    int buttonTextColor =
        themeColors.getColor(R.styleable.BetterPickersDialogs_bpButtonsTextColor, R.color.bpBlue);
    mSelectedColor =
        themeColors.getColor(
            R.styleable.BetterPickersDialogs_bpHeaderSelectedTextColor, R.color.bpWhite);
    mUnselectedColor =
        themeColors.getColor(
            R.styleable.BetterPickersDialogs_bpHeaderUnselectedTextColor,
            R.color.radial_gray_light);

    mHourPickerDescription = res.getString(R.string.hour_picker_description);
    mSelectHours = res.getString(R.string.select_hours);
    mMinutePickerDescription = res.getString(R.string.minute_picker_description);
    mSelectMinutes = res.getString(R.string.select_minutes);

    mHourView = (TextView) view.findViewById(R.id.hours);
    mHourView.setOnKeyListener(keyboardListener);
    mHourSpaceView = (TextView) view.findViewById(R.id.hour_space);
    mMinuteSpaceView = (TextView) view.findViewById(R.id.minutes_space);
    mMinuteView = (TextView) view.findViewById(R.id.minutes);
    mMinuteView.setOnKeyListener(keyboardListener);
    mAmPmTextView = (TextView) view.findViewById(R.id.ampm_label);
    mAmPmTextView.setOnKeyListener(keyboardListener);
    String[] amPmTexts = new DateFormatSymbols().getAmPmStrings();
    mAmText = amPmTexts[0];
    mPmText = amPmTexts[1];

    mHapticFeedbackController = new HapticFeedbackController(getActivity());

    mTimePicker = (RadialPickerLayout) view.findViewById(R.id.time_picker);
    mTimePicker.setOnValueSelectedListener(this);
    mTimePicker.setOnKeyListener(keyboardListener);
    mTimePicker.initialize(
        getActivity(), mHapticFeedbackController, mInitialHourOfDay, mInitialMinute, mIs24HourMode);

    int currentItemShowing = HOUR_INDEX;
    if (savedInstanceState != null && savedInstanceState.containsKey(KEY_CURRENT_ITEM_SHOWING)) {
      currentItemShowing = savedInstanceState.getInt(KEY_CURRENT_ITEM_SHOWING);
    }
    setCurrentItemShowing(currentItemShowing, false, true, true);
    mTimePicker.invalidate();

    mHourView.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            setCurrentItemShowing(HOUR_INDEX, true, false, true);
            tryVibrate();
          }
        });
    mMinuteView.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            setCurrentItemShowing(MINUTE_INDEX, true, false, true);
            tryVibrate();
          }
        });

    mTitleTextView = (TextView) view.findViewById(R.id.time_picker_header);
    if (mTitleText != null) {
      mTitleTextView.setVisibility(View.VISIBLE);
      mTitleTextView.setText(mTitleText);
    } else {
      mTitleTextView.setVisibility(View.GONE);
    }

    mError = (NumberPickerErrorTextView) view.findViewById(R.id.error);

    if (hasTimeLimits()) {
      mError.setVisibility(View.INVISIBLE);
    } else {
      mError.setVisibility(View.GONE);
    }

    mDoneButton = (Button) view.findViewById(R.id.done_button);
    if (mDoneText != null) {
      mDoneButton.setText(mDoneText);
    }
    mDoneButton.setTextColor(buttonTextColor);
    mDoneButton.setOnClickListener(
        new OnClickListener() {
          @Override
          public void onClick(View v) {
            if (mInKbMode && isTypedTimeFullyLegal()) {
              finishKbMode(false);
            } else {
              tryVibrate();
            }
            doneClickValidateAndCallback();
          }
        });
    mDoneButton.setOnKeyListener(keyboardListener);

    Button cancelButton = (Button) view.findViewById(R.id.cancel_button);
    if (mCancelText != null) {
      cancelButton.setText(mCancelText);
    }
    cancelButton.setTextColor(buttonTextColor);
    cancelButton.setOnClickListener(
        new OnClickListener() {

          @Override
          public void onClick(View v) {
            tryVibrate();
            dismiss();
          }
        });

    // Enable or disable the AM/PM view.
    mAmPmHitspace = view.findViewById(R.id.ampm_hitspace);
    if (mIs24HourMode) {
      mAmPmTextView.setVisibility(View.GONE);

      RelativeLayout.LayoutParams paramsSeparator =
          new RelativeLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
      paramsSeparator.addRule(RelativeLayout.CENTER_IN_PARENT);
      TextView separatorView = (TextView) view.findViewById(R.id.separator);
      separatorView.setLayoutParams(paramsSeparator);
    } else {
      mAmPmTextView.setVisibility(View.VISIBLE);
      updateAmPmDisplay(mInitialHourOfDay < 12 ? AM : PM);
      mAmPmHitspace.setOnClickListener(
          new OnClickListener() {
            @Override
            public void onClick(View v) {
              tryVibrate();
              int amOrPm = mTimePicker.getIsCurrentlyAmOrPm();
              if (amOrPm == AM) {
                amOrPm = PM;
              } else if (amOrPm == PM) {
                amOrPm = AM;
              }
              updateAmPmDisplay(amOrPm);
              mTimePicker.setAmOrPm(amOrPm);
            }
          });
    }

    mAllowAutoAdvance = true;
    setHour(mInitialHourOfDay, true);
    setMinute(mInitialMinute);

    // Set up for keyboard mode.
    mDoublePlaceholderText = res.getString(R.string.time_placeholder);
    mDeletedKeyFormat = res.getString(R.string.deleted_key);
    mPlaceholderText = mDoublePlaceholderText.charAt(0);
    mAmKeyCode = mPmKeyCode = -1;
    generateLegalTimesTree();
    if (mInKbMode) {
      mTypedTimes = savedInstanceState.getIntegerArrayList(KEY_TYPED_TIMES);
      tryStartingKbMode(-1);
      mHourView.invalidate();
    } else if (mTypedTimes == null) {
      mTypedTimes = new ArrayList<Integer>();
    }

    // Set the theme at the end so that the initialize()s above don't counteract the theme.
    mTimePicker.setTheme(themeColors);

    // Set the colors for each view based on the theme.
    view.findViewById(R.id.time_display_background).setBackgroundColor(headerBgColor);
    view.findViewById(R.id.ok_cancel_buttons_layout).setBackgroundColor(buttonBgColor);
    view.findViewById(R.id.time_display).setBackgroundColor(headerBgColor);
    view.findViewById(R.id.time_picker_error_holder).setBackgroundColor(headerBgColor);
    ((TextView) view.findViewById(R.id.separator)).setTextColor(mUnselectedColor);
    ((TextView) view.findViewById(R.id.ampm_label)).setTextColor(mUnselectedColor);
    mTimePicker.setBackgroundColor(bodyBgColor);
    return view;
  }