Android Open Source - 101AndroidApps Setting Menu Fragment






From Project

Back to project page 101AndroidApps.

License

The source code is released under:

Licenced under the Creative Commons Attribution 4.0 licence. For full text see http://creativecommons.org/licenses/by/4.0/

If you think the Android project 101AndroidApps 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.hulzenga.ioi.android.app_006;
// w  w  w.  j  a v a  2  s. co m
import android.annotation.SuppressLint;
import android.app.Activity;
import android.app.Fragment;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.util.SparseArray;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TableRow;
import android.widget.TextView;

import com.hulzenga.ioi.android.R;
import com.hulzenga.ioi.android.app_006.SettingChangeListener.ChangeType;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SettingMenuFragment extends Fragment {

  private SettingChangeListener mSettingChangeListener;

  private static final String IMAGE_SIZE    = "Image size";
  private static final String FOCUS         = "Focus";
  private static final String SCENE_MODE    = "SceneGraph mode";
  private static final String ISO           = "ISO";
  private static final String WHITE_BALANCE = "White balance";
  //private static final String TIMER = "Timer";

  private static final List<String> SETTINGS = new ArrayList<String>();

  static {
    SETTINGS.add(IMAGE_SIZE);
    SETTINGS.add(FOCUS);
    SETTINGS.add(SCENE_MODE);
    SETTINGS.add(ISO);
    SETTINGS.add("White balance");
    //SETTINGS.add("Timer");
  }

  private boolean[] availableSettings = new boolean[SETTINGS.size()];

  private static final SparseArray<ChangeType> SETTING_CHANGE_MAP = new SparseArray<ChangeType>();

  static {
    SETTING_CHANGE_MAP.put(SETTINGS.indexOf(IMAGE_SIZE), ChangeType.IMAGE_SIZE);
    SETTING_CHANGE_MAP.put(SETTINGS.indexOf(FOCUS), ChangeType.FOCUS);
    SETTING_CHANGE_MAP.put(SETTINGS.indexOf(SCENE_MODE), ChangeType.SCENE_MODE);
    SETTING_CHANGE_MAP.put(SETTINGS.indexOf(ISO), ChangeType.ISO);
    SETTING_CHANGE_MAP.put(SETTINGS.indexOf(WHITE_BALANCE), ChangeType.WHITE_BALANCE);
    //SETTING_CHANGE_MAP.put(SETTINGS.indexOf(TIMER), ChangeType.TIMER);
  }

  @Override
  public void onAttach(Activity activity) {
    super.onAttach(activity);
    mSettingChangeListener = (SettingChangeListener) activity;
  }

  public static SettingMenuFragment newInstance(Parameters params) {
    SettingMenuFragment fragment = new SettingMenuFragment();

    //go through the camera parameters to see which menu options should be enabled

    fragment.availableSettings[SETTINGS.indexOf(IMAGE_SIZE)] = true;

    if (params.getSupportedFocusModes() != null) {
      fragment.availableSettings[SETTINGS.indexOf(FOCUS)] = true;
    }
    if (params.getSupportedSceneModes() != null) {
      fragment.availableSettings[SETTINGS.indexOf(SCENE_MODE)] = true;
    }

    fragment.availableSettings[SETTINGS.indexOf(ISO)] = true;

    if (params.getSupportedWhiteBalance() != null) {
      fragment.availableSettings[SETTINGS.indexOf(WHITE_BALANCE)] = true;
    }

    //fragment.availableSettings[SETTINGS.indexOf(TIMER)] = true;

    return fragment;
  }

  @Override
  public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    ListView view = new ListView(getActivity());
    view.setBackgroundResource(R.drawable.app_006_item_background);
    view.setLayoutParams(new TableRow.LayoutParams(0, LayoutParams.WRAP_CONTENT, 1f));

    ListAdapter adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_activated_1, SETTINGS) {

      @Override
      public boolean areAllItemsEnabled() {
        return false;
      }

      @Override
      public boolean isEnabled(int position) {
        return availableSettings[position];
      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
        TextView view = (TextView) super.getView(position, convertView, parent);
        if (!isEnabled(position)) {
          view.setEnabled(false);
        }
        return view;
      }
    };

    view.setAdapter(adapter);
    view.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        mSettingChangeListener.open2ndLevelSetting(SETTING_CHANGE_MAP.get(position));
      }
    });

    return view;
  }
}




Java Source Code List

com.hulzenga.ioi.android.AppActivity.java
com.hulzenga.ioi.android.AppDetailsDialog.java
com.hulzenga.ioi.android.App.java
com.hulzenga.ioi.android.TableOfContentsActivity.java
com.hulzenga.ioi.android.app_001.HelloWorldActivity.java
com.hulzenga.ioi.android.app_002.Ball.java
com.hulzenga.ioi.android.app_002.BouncyBallsActivity.java
com.hulzenga.ioi.android.app_002.BouncyBallsView.java
com.hulzenga.ioi.android.app_003.MonsterDatabaseActivity.java
com.hulzenga.ioi.android.app_003.MonsterEditDialog.java
com.hulzenga.ioi.android.app_003.MonsterGenerator.java
com.hulzenga.ioi.android.app_003.MonsterListAdapter.java
com.hulzenga.ioi.android.app_003.database.MonsterContract.java
com.hulzenga.ioi.android.app_003.database.MonsterDatabaseHelper.java
com.hulzenga.ioi.android.app_003.database.MonsterProvider.java
com.hulzenga.ioi.android.app_004.BouncyBall3dActivity.java
com.hulzenga.ioi.android.app_004.BouncyBall3dGLSurfaceView.java
com.hulzenga.ioi.android.app_004.BouncyBall3dRenderer.java
com.hulzenga.ioi.android.app_004.BouncyBallGame.java
com.hulzenga.ioi.android.app_005.ElementActivity.java
com.hulzenga.ioi.android.app_005.ElementAdapter.java
com.hulzenga.ioi.android.app_005.ElementAnimator.java
com.hulzenga.ioi.android.app_005.ElementSnakeView.java
com.hulzenga.ioi.android.app_005.ElementView.java
com.hulzenga.ioi.android.app_005.Element.java
com.hulzenga.ioi.android.app_006.EmptyFragment.java
com.hulzenga.ioi.android.app_006.ExposureFragment.java
com.hulzenga.ioi.android.app_006.SettingChangeListener.java
com.hulzenga.ioi.android.app_006.SettingIconFragment.java
com.hulzenga.ioi.android.app_006.SettingMenuFragment.java
com.hulzenga.ioi.android.app_006.SettingMenuLvl2Fragment.java
com.hulzenga.ioi.android.app_006.Setting.java
com.hulzenga.ioi.android.app_006.SimpleCameraActivity.java
com.hulzenga.ioi.android.app_006.SimpleCameraPreview.java
com.hulzenga.ioi.android.app_007.ButtonsFragment.java
com.hulzenga.ioi.android.app_007.HighScores.java
com.hulzenga.ioi.android.app_007.LinksFragment.java
com.hulzenga.ioi.android.app_007.Menu.java
com.hulzenga.ioi.android.app_007.Review.java
com.hulzenga.ioi.android.app_007.Score.java
com.hulzenga.ioi.android.app_007.StatusFragment.java
com.hulzenga.ioi.android.app_007.WikiGameActivity.java
com.hulzenga.ioi.android.app_007.Wiki.java
com.hulzenga.ioi.android.app_008.OverheidActivity.java
com.hulzenga.ioi.android.app_008.OverheidFeedAdapter.java
com.hulzenga.ioi.android.app_008.OverheidFeedFragment.java
com.hulzenga.ioi.android.app_008.OverheidFeedItem.java
com.hulzenga.ioi.android.app_008.OverheidFeed.java
com.hulzenga.ioi.android.app_008.OverheidPagerAdapter.java
com.hulzenga.ioi.android.app_009.ThumbsUpActivity.java
com.hulzenga.ioi.android.app_009.ThumbsUpServer.java
com.hulzenga.ioi.android.app_009.ThumbsUpService.java
com.hulzenga.ioi.android.app_010.CompassActivity.java
com.hulzenga.ioi.android.app_010.CompassDetailsView.java
com.hulzenga.ioi.android.app_010.CompassView.java
com.hulzenga.ioi.android.util.Constrain.java
com.hulzenga.ioi.android.util.DeveloperTools.java
com.hulzenga.ioi.android.util.FileManager.java
com.hulzenga.ioi.android.util.ScreenMetrics.java
com.hulzenga.ioi.android.util.open_gl.ColorFunctionFactory.java
com.hulzenga.ioi.android.util.open_gl.ColorFunction.java
com.hulzenga.ioi.android.util.open_gl.ShaderTools.java
com.hulzenga.ioi.android.util.open_gl.engine.NodeController.java
com.hulzenga.ioi.android.util.open_gl.engine.SceneGraph.java
com.hulzenga.ioi.android.util.open_gl.engine.SceneNode.java
com.hulzenga.ioi.android.util.open_gl.geometry.Box.java
com.hulzenga.ioi.android.util.open_gl.geometry.Cylinder.java
com.hulzenga.ioi.android.util.open_gl.geometry.Geometry.java
com.hulzenga.ioi.android.util.open_gl.geometry.Grid.java
com.hulzenga.ioi.android.util.open_gl.geometry.Sphere.java
com.hulzenga.ioi.android.util.open_gl.geometry.Transform.java
com.hulzenga.ioi.android.util.open_gl.vector.Vec3.java
com.hulzenga.ioi.android.util.open_gl.vector.Vec4.java
fi.iki.elonen.NanoHTTPD.java